如何在用戶更改插入光標的哪一行時執行一些代碼?當前行號更改事件如果vb.net
所以像:
sub textbox1_lineindexchanged (byval ....) Handles Textbox1.Lineindexchanged
'do code based on the current line
end sub
對不起,我使用的是RichTextBox的,只是我一直用它,所以我只是把它在我的thoguhts一個文本框。
如何在用戶更改插入光標的哪一行時執行一些代碼?當前行號更改事件如果vb.net
所以像:
sub textbox1_lineindexchanged (byval ....) Handles Textbox1.Lineindexchanged
'do code based on the current line
end sub
對不起,我使用的是RichTextBox的,只是我一直用它,所以我只是把它在我的thoguhts一個文本框。
我假設你使用Windows窗體,所以我的答案是基於此。如果您使用的是ASP.NET,那麼您需要使用JavaScript來完成,而且我不知道如何/如果可能的話。
在Windows窗體中,您可以爲KeyUp和MouseUp事件創建事件處理程序,但不存在SelectionChanged事件。如果您改用RichTextBox代替,則您可以訪問SelectionChanged事件。
如果您使用文本框的SelectionStart屬性並將其傳遞給GetLineFromCharIndex方法,該方法會給出行號。希望這可以幫助。
獲得當前行,但我不會通過代碼如何脫字符剛剛左右移動。 – 2010-02-07 20:29:56
那麼你想要做的是不可能的。 – Josh 2010-02-07 20:31:05
當行改變時,我想要運行的代碼是一個usercontrol函數,它必須存儲文本行,所以我將檢查插入的行是否與存儲在用戶變量。如果它們是相同的,那麼插入符沒有移動線(或者如果有2個相同的線,我不需要運行代碼),如果它們不是那麼它被移動線或線被改變,我需要運行這兩種情況下的代碼。那謝謝啦!!!! – 2010-02-07 20:37:34
有沒有辦法做到這一點與香草WinForms TextBox
實例。它不公開任何有關插入符號的信息。要做到這一點的唯一方法是分類TextBox
,重寫WndProc並專門處理有關脫字符號移動的消息(如果存在此類消息)。
你想在這裏實現什麼行爲?可能有另一種方法來實現這一點。
它通過textbox.SelectionStart,然後你可以檢查如果選擇長度是0.你可以通過'TextBox1.GetLineFromCharIndex(TextBox1.GetFirstCharIndexOfCurrentLine)' – 2010-02-07 20:22:26
我懷疑有一些東西比檢查SelectionStart
財產KeyPress
,Click
和TextChanged
處理程序更優雅。
你是指當用戶在多行文本框的行之間移動時發生的事件,類似的事情? – MartW 2010-02-07 20:08:53
是的,確切地說。 – 2010-02-07 20:15:54