winforms: richtextbox ->自动选词/隐藏选择错误

本文关键字:隐藏 选择 错误 richtextbox winforms | 更新日期: 2023-09-27 18:12:17

我想我在。net中遇到了一个bug,但是我想知道这是不是我做错了什么。

首先,我要在Win Forms中创建一个简单的文本编辑器。我添加了查找所需文本的功能。它像我创建的非模态对话框一样工作。我希望它像这样工作:如果找到搜索的单词,它选择RTB中的文本,给它焦点,然后把焦点还给我的非模态窗口。在启用隐藏选择属性方面,它完美地工作,正如我想要的那样(搜索后焦点仍然在非模态窗口上,但发现短语在RTB中仍然突出显示)。

后来,我注意到AutoWordSelection属性有问题,它不工作。所以我已经按照这里所说的做了。事实上,它有帮助,但后来我注意到我的搜索算法不起作用(现在我需要在搜索后关注RTB,而不是将其返回到非模态窗口)。换句话说,它停止工作了。

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

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

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

在这两种情况下,我得到了关于不可能创建窗口句柄的消息。因此,我必须同意只有AutoWordSelection或hidesselection正常工作(因为如果我删除了关于AutoWordSelection的前面部分,上述部分才能正常工作)。

这不是一个非常严重的问题,因为我已经找到了一种方法,使它的工作只是一点点不像我想要的那样(但它不限制应用程序的功能)。然而,这个错误(如果它是一个错误)是恼人的,我想知道是否有人经历过,并找到了一个适当的解决方案。

我们设@汉斯·帕桑特:D

winforms: richtextbox ->自动选词/隐藏选择错误

好的。所以看起来我已经找到了答案(这是显而易见的,因为我把它贴在这里)。在这种情况下,有必要完全按照我在一个问题中链接的帖子中所做的那样做,然后将hidesselection设置为true(在mainForm.cs中),并以编程方式将其设置为false。非常愚蠢,但它现在工作(如果我设置这个默认为false,它不会)。