【问题标题】:Win Forms: RichText Box -> AutoWordSelection/Hide Selection bugWinforms:RichTextBox -> AutoWorld 选择/隐藏选择错误
【发布时间】:2015-09-10 20:27:14
【问题描述】:

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

首先,我在 Win Forms 中创建简单的文本编辑器。我添加了查找所需文本的功能。它作为我创建的无模式对话框工作。我希望它像这样工作:如果找到了搜索词,它会选择 RTB 中的文本,将焦点放在它上面,然后将焦点放回我的无模式窗口。与启用“隐藏选择”属性相关,它完美地工作,完全符合我的期望(搜索后焦点仍然在无模式窗口上,但找到的短语在 RTB 中仍然突出显示)。

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

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

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

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

在这两种情况下,我都收到有关无法创建窗口句柄的消息。因此,我必须同意仅使用 AutoWordSelection 或 HideSelection 正常工作(因为如果我删除了与 AutoWordSelection 相关的早期部分,则上述部分正在工作)。

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

假设@Hans Passant:D

【问题讨论】:

    标签: c# winforms richtextbox


    【解决方案1】:

    好的。所以看起来我已经找到了答案(这很明显是因为我在这里发布了它)。在这种情况下,必须完全按照我在问题中链接的帖子中的操作,然后将 HideSelection 设置为 true(在 mainForm.cs 中),并在公共 ctor 中以编程方式将其设置为 false。很愚蠢,但它现在可以工作(如果我默认将其设置为 false,它就不会了)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-06
      • 1970-01-01
      • 2014-11-05
      • 2016-08-10
      • 2017-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多