我有一個Textbox控件,它有時以編程方式更新,也可以由用戶更新。 我如何區分這兩個事件? 我想在用戶更改文本時將「髒」標誌設置爲「真」。只有用戶輸入的c#textbox事件
回答
您可以使用文本框的鍵按下事件之前保存的價值。
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
//Insert the code you want to run when the text changes here!
}
這個事件是有效的文本框,但我想知道其他控制像NumericUpDown怎麼樣... – kaycee 2011-03-12 00:26:25
是的,這個解決方案不是所有控件的最乾淨。但是,numericupdown控件確實包含keydown事件和mousedown事件。我想你可以同時使用它們和追蹤控件的值。另外,每次編程改變值時,你總是可以拋出一個布爾標誌,然後檢查控件的ValueChanged事件中的布爾標誌(在繼續處理之前將其設置回默認值)。這當然是一個非常簡單的解決方案 - 可能不是最優雅的。 – 2011-03-12 13:39:54
如果用戶用鼠標剪切並粘貼文本框中的數據,這不起作用。 – 2013-03-11 14:52:50
避免在編程完成時設置「髒」標誌。禁用事件處理程序或設置一個標誌,上面寫着「這是代碼,而不是用戶」
在內聯更改的持續時間內禁用事件處理程序是一個好主意。它還解決了用戶將文本粘貼到框中時可能遇到的任何問題。 – 2016-06-22 08:46:38
嘗試的onblur
這會引起用戶離開現場的那一刻。
您可以解決它與聚焦狀態一起編輯
好主意,但不是100%有效。會比我的回答「清潔」一點 – 2011-03-12 00:05:42
如果它不起作用,那麼「清潔」就沒有意義。簡單地分離處理程序對於這種事情是非常標準的。 – 2011-03-12 00:12:01
他不是在談論殘疾人處理程序,而是關於額外的標誌。那麼,它是一個額外的國旗或額外的處理程序... – 2011-03-12 00:15:44
檢查修改的屬性。如果爲true,則更改是由用戶進行的,否則以編程方式更改文本。
- 1. 將清除用戶輸入的TextBox事件
- 2. WINAPI控件「編輯」-Textbox沒有收到用戶輸入
- 3. C# - TextBox TextChanged事件沒有觸發
- 4. 有進入和離開事件TextBox - asp.net?
- 5. 使用C中的TextBox驗證事件#
- 6. TextBox事件小問題 - C#
- 7. C#Textbox textchange屬性事件
- 8. TextBox - TextChanged事件Windows C#
- 9. 鼠標輸入事件,但只有當鼠標輸入不在
- 10. C#圖形用戶界面保存輸入文本(TextBox)
- 11. C輸入只有小數
- 12. 定時器,只有用戶輸入
- 13. 在C#Winforms上驗證Textbox的輸入
- 14. 請求用戶輸入C#中的按鈕單擊事件
- 15. 用戶只輸入一次
- 16. 單擊面板內的TextBox觸發多次輸入事件
- 17. 驗證文本輸入的Silverlight TextBox事件
- 18. KeyDown事件與用戶輸入驗證
- 19. Textbox onchange事件
- 20. Textbox KeyPress事件
- 21. Textbox Textchanged事件
- 22. SQL Server:帶有隻讀用戶的unsanitized用戶輸入
- 23. 用戶輸入的C++ gethostbyaddr
- 24. 允許用戶在C#中只輸入某些數字,只有整數?
- 25. 在輸入時觸發ASP.NET TextBox事件按
- 26. C - scanf沒有停止用戶輸入
- 27. 沒有Javascript的TextBox OnClick事件
- 28. 問題有一個TextBox的LostFocus事件
- 29. 用戶輸入文件C編程
- 30. 讓用戶輸入文件C++
你是[數據綁定](http://msdn.microsoft.com/en-us/library/ms752347.aspx)? – 2011-03-12 00:21:13
該控件沒有數據綁定... – kaycee 2011-03-12 00:30:42