我有一个 DataGridView
和一个包含一些 ComboBoxes
的 GroupBox
控件。
根据在 ComboBoxes
中选择的内容,网格中的元素会发生变化。
有没有办法说
If (Something Changes Within The GroupBox)
{
//Update the grid
}
(无需为每个框编写 OnSelectedIndexChange
事件)
我不需要更新部分的代码,我只需要一个事件或我可以用来检查 GroupBox
中控件的值是否已更改的东西。
有什么想法吗?
更新
好吧,我想我没有以正确的方式解释它。
忘记 ComboBox
。
假设我在 GroupBox
中有一堆控件有没有办法说:
一旦其中一个控件的值发生变化,就创建一个事件。
最佳答案
您可以将每个组合框 SelectedIndexChanged 事件连接到一个方法:
comboBox1.SelectedIndexChanged += new System.EventHandler(GroupBoxComboBoxChange);
comboBox2.SelectedIndexChanged += new System.EventHandler(GroupBoxComboBoxChange);
comboBox3.SelectedIndexChanged += new System.EventHandler(GroupBoxComboBoxChange);
comboBox4.SelectedIndexChanged += new System.EventHandler(GroupBoxComboBoxChange);
或者使用 LINQ 为任何组合框选择更改设置事件处理程序:
GroupBox.Controls.OfType<ComboBox>.ForEach(cb => cb.SelectedIndexChanged += new System.EventHandler(GroupBoxComboBoxChange));
对您更新的回答:您正在寻找 ControlValueChanged() 事件。我认为这里的问题是所有控件都不同。为 ComboBox 定义“ValueChanged”事件的内容不一定与 TextBox 相同。这将是一个语义挑战,而且不是很清楚。希望这是有道理的。
关于c# - Groupbox 检查更改事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11778865/