代码之家  ›  专栏  ›  技术社区  ›  Don Kirkby

如何监视WinForms TextBox.SelectionStart属性的更改?

  •  2
  • Don Kirkby  · 技术社区  · 16 年前

    我有一个多行文本框,我想在文本框下面的标签中显示用户当前的行号和列号。看起来我可以使用SelectionStart属性、GetLineFromCharIndex方法和GetFirstCharIndexOfcurrentline方法获取行号和列号。但是,我看不到每次文本框中的选择更改时都会激发的任何事件。

    我能看到的最好的方法是监视按键和鼠标向下的事件,并在每个事件之后检查SelectionStart属性。我想我可以用计时器来观察变化,但这感觉很奇怪。

    我错过什么了吗?

    2 回复  |  直到 14 年前
        1
  •  3
  •   Marc Gravell    16 年前

    为了保持健壮,您可能需要添加一个计时器,并定期检查它; from here ,控件不发布适当的win32消息(en-selchange)作为事件执行此操作。

        2
  •  0
  •   Don Kirkby    14 年前

    要获取SelectionChanged事件,还可以将文本框转换为RichTextBox。RichTextBox的行为与TextBox有些不同,因此这可能不是一个理想的解决方案,但至少有一个 SelectionChanged event .

    推荐文章