Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Win表单:RichText Box->;自动字选择/隐藏选择错误_C#_Winforms_Richtextbox - Fatal编程技术网

C# Win表单:RichText Box->;自动字选择/隐藏选择错误

C# Win表单:RichText Box->;自动字选择/隐藏选择错误,c#,winforms,richtextbox,C#,Winforms,Richtextbox,我想我在.NET中遇到了一个bug,但我想知道这是否是我所做的错误 首先,我在Win窗体中创建简单的文本编辑器。我添加了查找所需文本的功能。它是我创建的一个非模态对话框。我希望它是这样工作的:如果找到了搜索的单词,它会选择RTB中的文本,将焦点交给它,然后将焦点交还给我的无模式窗口。在启用“隐藏选择”属性时,它工作得非常完美,完全符合我的要求(搜索后的焦点仍然是无模式窗口,但找到的短语仍在RTB中突出显示) 后来,我注意到AutoWordSelection属性有问题,它就是不起作用。所以我照你说

我想我在.NET中遇到了一个bug,但我想知道这是否是我所做的错误

首先,我在Win窗体中创建简单的文本编辑器。我添加了查找所需文本的功能。它是我创建的一个非模态对话框。我希望它是这样工作的:如果找到了搜索的单词,它会选择RTB中的文本,将焦点交给它,然后将焦点交还给我的无模式窗口。在启用“隐藏选择”属性时,它工作得非常完美,完全符合我的要求(搜索后的焦点仍然是无模式窗口,但找到的短语仍在RTB中突出显示)

后来,我注意到AutoWordSelection属性有问题,它就是不起作用。所以我照你说的做了。的确,这很有帮助,但我注意到我的搜索算法不起作用(现在我需要在搜索后将焦点放在RTB上,而不是放回无模式窗口)。换句话说,它只是停止工作

我试图在FixedRichTextBox中添加一些代码(我只是在Hans建议的第一部分下添加了它):

我也试过另一种方式,我的意思是:`if(!baseSelection)[…]

在这两种情况下,我都得到了关于不可能创建窗口句柄的信息。因此,我必须同意仅在AutoWordSelection或HideSelection正常工作的情况下生存(因为如果我删除了与AutoWordSelection相关的较早部分,则上述部分工作正常)

这不是一个非常严重的问题,因为我已经找到了一种方法,使它工作起来稍微有点像我希望的那样(但它不会限制应用程序的功能)。然而,这个bug(如果是bug的话)很烦人,我想知道是否有人经历过这种情况并找到了合适的解决方案


让我们说@Hans Passant:D

好的。看来我已经找到了答案(这是显而易见的,因为我把它贴在了这里)。在本例中,有必要完全按照我在一个问题中链接的帖子中所做的操作,然后将HideSelection设置为true(在mainForm.cs中),并在公共字段中通过编程将其设置为false。非常愚蠢,但它现在可以工作了(如果我默认设置为false,它就不能工作)

if(base.HideSelection)
    base.HideSelection=false;
base.HideSelection=false;