当用户更改插入符号所在的行时,我该如何执行一些代码?
所以像:
sub textbox1_lineindexchanged (byval ....) Handles Textbox1.Lineindexchanged
'do code based on the current line
end sub
抱歉,我使用的是richtextbox,只是我一直使用它,所以我只是在我的想法中称它为文本框。
TextBox
使用普通的 WinForms实例无法做到这一点。它不会公开有关插入符号的任何信息。这样做的唯一方法是子类TextBox
,覆盖 WndProc 并专门处理有关插入符号移动的消息(如果存在此类消息)。
你想在这里实现什么行为?可能有另一种方法可以实现这一点。
我假设您使用的是 Windows 窗体,所以我的答案是基于此。如果您使用的是 ASP.NET,那么您需要使用 JavaScript 来完成,我不知道如何/是否可能。
在 Windows 窗体中,您可以为 KeyUp 和 MouseUp 事件创建事件处理程序,但没有 SelectionChanged 事件。如果您改用 RichTextBox,则可以访问SelectionChanged事件。
如果您将使用文本框的SelectionStart属性并将其传递给GetLineFromCharIndex方法,该方法将为您提供行号。希望这可以帮助。
我怀疑有什么比从、和处理程序中检查SelectionStart
属性更优雅的东西。KeyPress
Click
TextChanged