【问题标题】:Is it possible to define "Word boundary" characters for a text box?是否可以为文本框定义“字边界”字符?
【发布时间】:2015-10-20 10:07:39
【问题描述】:

(我不敢相信从未有人问过这个问题;很可能我搜索失败了。)

只有一行 WinForms TextBox control 包含内容:

当用户使用 Ctrl+Ctrl+ 时,插入符号移动到最后分别是文本框内容的最开始。

我的目标

我想配置文本框,以便使用上述键导航(或另外使用 Shift),插入符号在单词边界处停止

例如当插入符号位于位置 0 并且用户按下 Ctrl+Shift+ 时,它看起来像这样:

即它只选择第一个“单词”。

标准行为是:

即它选择整个文本。

有趣的是,本机 Windows 控件例如在“运行”对话框中的行为如下所述:

Edge 或 Internet Explorer 甚至 Windows Explorer 的地址栏也会停在单词边界处。

我的问题

是否可以(可能通过 P/Invoke)为 TextBox 控件配置某些停止字符?

更新 1

我可以考虑手动处理键盘事件。

【问题讨论】:

  • richtextbox 控件具有您正在寻找的行为 :) 将多行设置为 false
  • @VisualBean 是否可以有单行RTF控件?
  • 将多行设置为 false :)

标签: c# .net winforms textbox


【解决方案1】:

回答你的问题..肯定的,但我不知道怎么做。

但是

有一个具有您正在寻找的行为的控件,即RichTextBox。 它具有您要求的行为,并具有禁用默认多行行为的属性。

使 RichTextbox 看起来像普通文本框的属性

  • 多行 - 错误
  • DetectUrls - 错误
  • 身高 - 20

注意: richTextBox 确实具有开箱即用的自动完成功能,就像常规文本框一样。

【讨论】:

    猜你喜欢
    • 2020-04-10
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 2017-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-20
    相关资源
    最近更新 更多