我有一個包含許多標籤和文本框的表單。如果有任何字段被修改,我希望標題突出顯示爲紅色。有沒有簡單的方法來做到這一點,或者你需要將事件回調分別添加到每個表單對象?謝謝!有沒有一種簡單的方法來添加一個事件到C#中的所有表單對象?
5
A
回答
0
當您查看與每個控件關聯的事件時,您會注意到可以「下拉」表單中編碼的所有事件的列表。例如,如果雙擊「文本更改」事件,它將是controlname_textchanged(...)
。然而,如果你有一個通用的處理程序,那麼你可以稱它爲textchangedevent(...)
。通用事件處理程序需要在參數中包含與該事件關聯的發件人和事件對象。
如果您在用戶控件中執行此操作,並且必須更新主窗體,那麼您將通過public event eventobject youreventname
進行冒泡,並在主窗體上綁定該事件。
0
像這樣的東西應該工作:
foreach (System.Windows.Forms.Control cont in this.Controls)
cont.Validating += new System.Windows.Forms.ValidationEventHandler(this.Control_Validating_Method)
然後,你可以測試事件代碼控制類型,與原來的值進行比較的值。
1
了我的頭頂部,你可以做的形式加載事件添加事件這樣的事情...
foreach (var control in this.Controls)
{
if (control is Label)
{
((Label)control).TextChanged += Controls_TextChanged;
}
else if (control is TextBox)
{
((TextBox)control).TextChanged += Controls_TextChanged;
}
}
0
是的,你可以很容易地控件添加到同一事件。這個例子把'Labels'和'Textboxes'放在同一個事件中。
private void Form1_Load(object sender, EventArgs e)
{
foreach (Control x in this.Controls)
{
if(x is Label)
((Label)x).MouseHover+=new EventHandler(AllLabels_HoverEvent);
else if(x is TextBox)
((TextBox)x).MouseHover+=new EventHandler(AllTextboxes_HoverEvent);
}
}
void AllLabels_HoverEvent(object sender, EventArgs e)
{
Label label = (Label)sender;
// label.dowhateveryouwant...
}
void AllTextboxes_HoverEvent(object sender, EventArgs e)
{
Textbox textbox = (Textbox)sender;
// textbox.dowhateveryouwant...
}
如果您需要任何更多的澄清,請評論下面,我將添加到我的回答或修改它適合你有什麼特別的需求。但要小心,如果您將控件嵌套在其他容器中,它們將不在this.Controls
中。
相關問題
- 1. 有沒有一種簡單的方法來document.createElement多個元素?
- 2. 有沒有一種簡單的方法來實現LINQ來與DataContext對象?
- 3. 有沒有簡單的方法來增加Map對象的值?
- 4. 有沒有一種簡單的方法來處理PHP的表單?
- 5. 有沒有一種簡單的方法來獲取objective-c/iPhone-OS中對象的創建者對象?
- 6. 對象有一個相當簡單的請求沒有方法
- 7. 有沒有一種簡單的方法來通過`imgCounter.src =`
- 8. 有沒有一種簡單的方法來創建代碼TextBox?
- 9. 有沒有簡單的方法來找到一個數字
- 10. 有沒有一種簡單的方法來重構C#中的參數?
- 11. 有沒有一種更簡單的方法將一個水平滾動條添加到ASP中的列表框?
- 12. 有沒有一種簡單的方法來重複一個PHP的MySQL查詢?
- 13. 有沒有一種簡單的方法來顯示matlab GUI中的「表」?
- 14. 有沒有一種簡單的方法來複制單詞文檔。到另一個使用C#?
- 15. 有沒有一種簡單的方法來用Dotty編譯一個sbt項目?
- 16. 有沒有簡單的方法來添加一個方面到現有的VB.NET方法?
- 17. 有沒有一種簡單的方法可以將處理程序添加到記錄器對象中?
- 18. 有沒有一個簡單的方法來添加griffon功能常規?
- 19. 有沒有一種簡單的方法來確定一個文件在C#中的擴展名是什麼?
- 20. 有沒有一種簡單的方法在Python中編寫它?
- 21. 在Linux下有沒有一種簡單的方法來實現一個像C++中的GC.GetTotalMemory一樣的函數?
- 22. 有沒有簡單的方法將EF ResultSet分組到一個新的對象?
- 23. 有沒有一種簡單的方法來實現一個帶有兩個輸入行的對話框? (JAVA)
- 24. 有沒有更簡單的方法來做到這一點?
- 25. 有沒有更簡單的方法來做到這一點?
- 26. 有沒有一種簡單快捷的方式來生成JavaScript?
- 27. 有沒有一種很好的方法來在Spark中添加單詞?
- 28. 有沒有簡單的方法來覆蓋列表對象的方法__getitem__?
- 29. 有沒有一種簡單的方法來編輯python的json文件
- 30. 有沒有一種簡單的方法來添加邊框到iOS 5.1的Xcode中的視圖