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

时间:2009-05-25 19:39:35

标签: .net winforms textbox

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

我能看到的最好的方法是监控KeyPress和MouseDown事件,并在每个事件后检查SelectionStart属性。我想我可以使用计时器来观察变化,但这感觉很奇怪。

我错过了什么吗?

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

要获取SelectionChanged事件,您还可以将TextBox转换为RichTextBox。 RichTextBoxes的行为与TextBoxes略有不同,所以这可能不是一个理想的解决方案,但至少有一个SelectionChanged event