小编Rog*_*ier的帖子

WinForms TextBox的自定义插入

我正在WinForms .Net 2.0应用程序中开发类似应用程序的自定义HyperTerminal.我在Panel中有一个多行TextBox,您可以在其中与硬件设备进行交互.

我的客户希望拥有一个自定义Caret,一个填充矩形,大小为一个字符空间,而不是默认的垂直线.

我知道.Net默认情况下不提供执行此操作的选项,但必须有一些Windows功能才能执行此操作.

.net c# caret winforms

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

是否可以在switch语句中使用nameof表达式?

新的C#6.0nameof在使用PropertyChanged以下内容传播属性更改的模式中非常出色:

private string _myProperty;

public string MyProperty
{
    get
    {
        return _myProperty;
    }
    set
    {
        _myProperty= value;
        OnPropertyChanged(nameof(MyProperty));
    }
}
Run Code Online (Sandbox Code Playgroud)

在监听属性更改时,我使用它(是的,即使是丑陋的硬编码字符串):

    private void OnMyObjectPropertyChanged(object sender, PropertyChangedEventArgs args)
    {
        switch (args.PropertyName)
        {
            case "MyProperty":
                DoSomething();
                break;
        }
    }
Run Code Online (Sandbox Code Playgroud)

使用新的nameof表达式,这段代码会编译/工作吗?

private void OnMyObjectPropertyChanged(object sender, PropertyChangedEventArgs args)
{
    switch (args.PropertyName)
    {
        case nameof(MyObject.MyProperty):
            DoSomething();
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# roslyn nameof

9
推荐指数
1
解决办法
1880
查看次数

是否可以在app.config中的"supportedRuntime"中指定.NET Service Pack?

我有一个在.Net 2.0 SP2上运行良好的应用程序,但无法在.NET 2.0 RTM上正常运行.(仅供参考:当调用方法为托管DLL时,它会失败,该DLL是用于USB编程的本机DLL的包装器).

我知道你可以在C#.NET应用程序的app.config中提供支持的运行时

  <startup>
    <supportedRuntime version="v2.0.5727" />
    <supportedRuntime version="v4.0" />
  </startup>
Run Code Online (Sandbox Code Playgroud)

但是,是否也可以指定特定的Service Pack版本?

谢谢!

编辑:我现在确定哪个方法在2.0和2.0 SP2之间失败.它是在2.0 SP1中添加的WaitHandle.WaitOne(int).

对于遇到问题的其他人来说,编译器没有说什么,但如果你使用有问题的运行时确定可执行文件,它确实会给你确切的错误.

例如:

Warning: System.MissingMethodException: Method not found: 'Boolean System.Threading.WaitHandle.WaitOne(Int32)'. while resolving 0xa0000e1 - System.Threading.WaitHandle.WaitOne.
11/11/2010 01:54:07 [3620]: Method not found: 'Boolean System.Threading.WaitHandle.WaitOne(Int32)'. while compiling method XXX
Run Code Online (Sandbox Code Playgroud)

罗吉尔

.net c#

6
推荐指数
1
解决办法
856
查看次数

浏览安装后的NSIS目录页面选择后添加"$ {PRODUCT_NAME}"

我有一个带有目录页面的简单NSIS脚本,用户可以在其中选择要安装应用程序的目录.请参阅下面的示例,如果已安装该应用程序,则会从注册表中获取值,或者使用www root或"program files\publisher\product name".

问题是,当我单击目录页面上的浏览并选择特定目录(例如:c:\ test)时,当我关闭浏览对话框时,定义PRODUCT_NAME会自动添加到路径中:c:\ test\Invoice Management Workflow .如何避免自动添加产品名称?

!define PRODUCT_NAME "Invoice Management Workflow"

!insertmacro MUI_DEFINES
!insertmacro MUI_PAGE_WELCOME
Page directory DirPre
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_INSTFILES

Function DirPre
    ; set the INSTDIR to 
    ReadRegStr $0 HKLM "Software\${PRODUCT_PUBLISHER}\${PRODUCT_NAME}" "InstallDirectory"
    ${If} $0 != ""
        StrCpy $INSTDIR $0
        Abort
    ${Else}
        ; get the install dir from reg
        ReadRegStr $0 HKLM "SOFTWARE\Microsoft\InetStp" "PathWWWRoot"
        ${If} $0 != ""
            StrCpy $INSTDIR $0
        ${EndIf}
    ${EndIf}
FunctionEnd
Run Code Online (Sandbox Code Playgroud)

directory install nsis

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

标签 统计

.net ×3

c# ×3

caret ×1

directory ×1

install ×1

nameof ×1

nsis ×1

roslyn ×1

winforms ×1