小编El *_*Mac的帖子

如何以编程方式安装Font(C#)

有没有办法以编程方式将字体永久添加到Windows 7/8 PC?我已经阅读了几篇关于AddFontResource DLL-Import的帖子,但似乎没有用.

除此之外,MSDN文档说明在重新启动计算机后将删除字体,除非将字体添加到注册表中.

如何永久安装字体?如何将字体添加到注册表?是否总是相同的名称/条目?

我必须在运行时动态添加字体,因为我会在用户选择字体后立即获取字体.

备注:我知道如何添加注册表项.我的问题更多的是关于Windows XP,Vista,7和8与不同字体类型之间的兼容性.也许有办法启动另一个为我安装字体的exe.

.net c# fonts winforms

17
推荐指数
2
解决办法
2万
查看次数

定义未定义(ESLint)

我一直收到ESLint错误'define' is not defined. (no-undef).我相信,我可以define全局定义,但不应该本地支持吗?

使用define的代码示例:

define([], function () { // Error here!
    'use strict';
    ....
Run Code Online (Sandbox Code Playgroud)

这是我的eslintrc.json:

{
    "env": {
        "shared-node-browser": true,
        "commonjs": true
    },
    "plugins": ["requirejs"],
    "extends": ["eslint:recommended"],
    "rules": {
        "indent": [
            "error",
            "tab"
        ],
        "linebreak-style": [
            "error",
            "windows"
        ],
        "quotes": [
            "error",
            "single"
        ],
        "semi": [
            "error",
            "always"
        ],
        "requirejs/no-invalid-define": 2,
        "requirejs/no-multiple-define": 2,
        "requirejs/no-named-define": 2,
        "requirejs/no-commonjs-wrapper": 2,
        "requirejs/no-object-define": 1
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript requirejs eslint

17
推荐指数
1
解决办法
1万
查看次数

chai-http在运行测试后没有退出

我遇到了一个问题,在使用chai-http运行后我的mocha测试没有完成.测试后Mocha会挂起并最终进入超时状态(至少在我的CI上).

mocha.js chai chai-http

11
推荐指数
1
解决办法
4657
查看次数

Gradle将库添加到类路径

我正在使用Gradle进行项目.我的build.gradle已将JUnit作为依赖项,但每次我再次导入项目时,它都无法识别JUnit库并要求我将其添加到classpath中.此问题不仅适用于JUnit,还适用于其他依赖项.我是否将JUnit添加到了错误的位置?

PS:项目构建得很好,只是IDE(IntelliJ)将所有内容都标记为红色.

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.11'
}
Run Code Online (Sandbox Code Playgroud)

错误的屏幕截图

java intellij-idea gradle

10
推荐指数
1
解决办法
7834
查看次数

在 Visual Studio 中支持 C# 9.0

如何在 C# 9.0 中打开对记录关键字的支持?

当我尝试使用 newrecord关键字(或init)时,我在 Visual Studio 中收到意外的令牌错误。

我错过了什么?还是 Visual Studio 16.8 不支持 C# 9.0?

public record Person
{
    public string? FirstName { get; init; }
    public string? LastName { get; init; }
}
Run Code Online (Sandbox Code Playgroud)

错误截图


更新:只需阅读标记的答案。下面的信息最终对这个问题并不重要,这里仅用于文档目的。


我正在使用 Visual Studio 16.8,9.0在我的项目文件中将语言设置为。

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <LangVersion>9.0</LangVersion>
    <TargetFramework>net5.0</TargetFramework>
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
    <NoWarn>$(NoWarn);1591</NoWarn>
    <Nullable>enable</Nullable>
  </PropertyGroup>


  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.ApiAuthorization.IdentityServer" Version="3.1.8" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.9">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Swashbuckle.AspNetCore" Version="5.6.3" />
  </ItemGroup>

</Project> …
Run Code Online (Sandbox Code Playgroud)

c# resharper visual-studio

10
推荐指数
1
解决办法
3217
查看次数

C++ std::set 唯一性覆盖

容器如何std::set<T>检查两个对象是否唯一?我尝试覆盖相等运算符(==),但它不起作用。

我想这样做的原因是,我有一个类 Person,并且我指定我的 Person 是同一个人,如果他们具有相同的名字(甚至可能是生日、地址等)。

ccpreference.com中,他们写了以下内容(我有点不清楚):

在标准库使用比较概念的地方,唯一性 是通过使用等价关系来确定的。不精确地说,如果两个对象 a 和 b 的比较结果都不小于另一个,则认为两个对象 a 和 b 是等价的(不是唯一的): !comp(a, b) && !comp(b, a)。

我认为这个问题也扩展到其他 STL 容器甚至算法(甚至可能扩展到整个 STL)。因此,如果将来我想使用该函数std::find,我将查找人名而不是对象本身。它是否正确?


编辑

我想添加一些示例代码。

// My operator overloading comparing two strings.
bool operator==(Node & rhs) const {
        return this->name.compare(rhs.name);
}
Run Code Online (Sandbox Code Playgroud)

然后,在 UnitTest 中,我将同名的对象两次添加到集合中。它被添加两次(但根据operator==.

void test_adding_two_identical_nodes() {
    // The pool is a set<Node> inside
    model::Node_Pool pool{};
    pool.store_node(model::Node{"Peter"});
    pool.store_node(model::Node{"Peter"});
    // Should be only 1 because the same node should …
Run Code Online (Sandbox Code Playgroud)

c++ stl c++14

5
推荐指数
1
解决办法
3471
查看次数

服务器上不存在 Sonarqube 分支

当我尝试使用声纳扫描仪分析我的项目时,扫描失败并显示以下错误消息:

Caused by: Branch does not exist on server: develop
Run Code Online (Sandbox Code Playgroud)

显然,这只发生在它分析来自 GitHub 的拉取请求时。当我将以下配置添加到时,我可以重现该错误sonar-project.properties

sonar.branch.name = source-branch
sonar.branch.target = target-branch
Run Code Online (Sandbox Code Playgroud)

导致此问题的原因可能是什么?

sonarqube

5
推荐指数
1
解决办法
1万
查看次数

来自后台服务的UWP通知

摘要

我想处理来自后台服务(或显示为任务栏图标的应用程序)的推送通知,并在Action Center中将其显示为本地通知(优先级:Windows,但如果它是跨平台的,它也可以工作)。托盘图标是可选的,非常实用。重要的是应用程序应在后台运行并显示通知。

您是否可以建议一种在后台运行应用程序时显示本机(Windows)通知的方法?也许是当前实现这一目标的概述(已阅读:未弃用)?

细节

在Windows中似乎有上千种方法来处理通知,而且似乎没有一种可以完美地工作。UWP不支持任务栏图标(您必须使用WinForms应用程序或WPF进行修改),Electron似乎仅在将其作为开始菜单的快捷方式时才起作用,WinForms很难在其中显示通知行动中心。

你能建议一种方法吗?最好不必将应用程序提交给商店。

到目前为止,似乎我必须在Azure上部署Notification Service,但是我不确定我的应用程序在后台时是否可以处理这些通知。

JetBrains工具箱提供了我想要完成的类似方法:它位于任务栏中,可以发送通知(例如,当我搜索更新时)。

c# push-notification electron uwp

5
推荐指数
0
解决办法
151
查看次数

非 Nullable 在返回时变为 Nullable

我想我在某个地方看到过这个问题的答案,但我找不到它并且不记得答案。

假设启用了 Nullable-Reference-Types。

有一个方法返回一个string. 该方法的调用者将结果字符串存储到变量中。即使方法的返回值不可为空,该变量也将为 Nullable。

static string MyMethod() 
{
   return "Hello World!";
}

public static void Main() 
{
   // result is of type string? here. Hence nullable.
   var result = MyMethod();
}
Run Code Online (Sandbox Code Playgroud)

原始类型似乎不会发生同样的情况,但引用类型确实会发生这种情况,例如object. 对我来说,这有点违背了 NRT 的目的。我确信这是有原因的,而且是“设计使然”。

c# nullable-reference-types

5
推荐指数
1
解决办法
2186
查看次数

JavaFX ListView编辑TextFieldListCell

我正在研究客户端 - 服务器解决方案,我有一个与我连接的客户端的ListView.用户应该能够通过编辑ListView中的名称来远程重命名客户端.我已经阅读了很多关于编辑ListView单元格的内容,但是我没有找到任何可以改变我的类的成员属性的好例子.大多数示例都带有字符串列表,在我看来,如果ListView中的项不仅仅是字符串,那么这不是现代软件开发.

我想要做的是更改name我的客户端内的属性.

class Client {
    private String name;

    public String getName(){
        return name;
    }

    public String setName(String val){
        name = val;
    }
}
Run Code Online (Sandbox Code Playgroud)

我不在乎,如果我必须将该成员实现name为JavaFX属性(实际上我已经这样做了,但为了可读性和简单性而将其留下).

尝试使用TextFieldListCell Factory失败

如果您有兴趣,我尝试使用TextFieldListCell单元工厂:

this.listViewClients.setCellFactory(TextFieldListCell
 .forListView(new NetworkClientStringConverter(this.clientController)));
Run Code Online (Sandbox Code Playgroud)

但是我发现了一些棘手的事情:

  • 每次名称更改时,我都无法访问该对象.显然我应该做的是创建一个新的客户端并返回它(fromString).
    • 我通过将客户端控制器传递给了解决了这个问题StringConverter.(这不太好,我更愿意只访问我正在更改的客户端.)
  • 不过,这个名字并没有改变.

java listview javafx javafx-8

4
推荐指数
1
解决办法
3856
查看次数

如何同步Database和DataGridView

我一直在尝试通过a同步数据库DataGridView.到目前为止,我已经创建了一个数据模型类.此类包含与数据库匹配的多个属性.它们使用命名空间中的[Table][Column]属性进行映射System.Data.Linq.Mapping.

好.所以我DataGridViewDataSource-Property用于DataContext连接数据库(MSSQL).这个逻辑是在单例类中实现的,所以我可以保证有一个这样的实例DataContext.

 this.m_context = new DataContext(conn);
 this.m_VisitorTable = m_context.GetTable<Visitor>();
Run Code Online (Sandbox Code Playgroud)

好吧,如果我将表绑定到我,DataGridView.DataSource我可以看到数据库中的所有条目都已加载并正确显示.然后,如果我改变了一些东西,我发现自己面临同步问题.更改的单元格在数据库端没有更改.

为了保存更改,我实现了这个方法:

public void SaveChanges()
{
    try
    {
       // I have no idea what I'm doing here.
       VisitorLogic.Instance.m_VisitorTable.Context.SubmitChanges(System.Data.Linq.ConflictMode.Con
       // I'm also trying to see if changes were made so I can save them before closing.
       this.m_bChangesMade = false;
    }
    catch (Exception ex)
    {
        MessageBox.Show("Failed to save.", "Error");
    }
 }
Run Code Online (Sandbox Code Playgroud)

有没有办法让数据库的整个同步自动发生?就像改变自动提交一样.我想我将不得不改变模型类的东西.现在,它没有实现任何接口也没有继承任何东西.

这是类声明: …

c# sql-server datagridview visual-studio-2010 winforms

3
推荐指数
1
解决办法
1万
查看次数

ExecutorService SingleThreadExecutor

我有一个对象列表,根据用户交互,一些对象需要异步工作.像这样的东西:

for(TheObject o : this.listOfObjects) {
   o.doWork();
}
Run Code Online (Sandbox Code Playgroud)

该类TheObject实现了一个ExecutorService(SingleThread!),用于完成工作.TheObject类型的每个对象都实例化一个ExecutorService.我不想做烤宽面条代码.我没有足够的对象同时使用需要线程池的额外提取层.

我想引用有关CachedThreadPools的Java文档:

未使用60秒的线程将终止并从缓存中删除.因此,长时间闲置的池 不会消耗任何资源.

第一个问题: SingleThreadExecutor也是如此吗?线程是否被终止?JavaDoc没有说任何关于SingleThreadExecutor的内容.在这个应用程序中它甚至都不重要,因为我有一些可以依靠的对象.好奇而已.

此外doWork(),TheObject需要调用ExecutorService#.submit()方法来执行异步工作的方法.是否有可能(我敢打赌)doWork()隐式调用该方法?这是设计异步方法的可行方法吗?

void doWork() {
   if(!isRunningAsync) {
      myExecutor.submit(doWork());
   } else {
      // Do Work...
   }
}
Run Code Online (Sandbox Code Playgroud)

java multithreading executorservice

3
推荐指数
1
解决办法
9652
查看次数

检索字体的文件名

我想获取字体的文件名.这不是那么难......我知道,已经存在一个非常类似的问题,但问题的答案不可能就是这样.

我想要做的是通过TCP/IP将Font文件发送给其他客户端,如果他请求的话.我在FontDialog上选择了所需的字体,我可以从框架中获取FontName.我找不到字体文件,我可以说大部分时间都可以使用.

.NET在哪里知道系统上安装了哪些字体?它不能是框架依赖于一直无法运行的解决方案,如CodeProject上的解决方案和Stackoverflow中的建议.必须有一种安全的方法来检索字体文件.FontDialog可以将它们全部列在一个框中,并且安装的字体必须具有其文件的路径.

有兴趣帮助我吗?

在此输入图像描述

.net c# fonts winforms

2
推荐指数
1
解决办法
2960
查看次数