有没有办法检查哪个组合框哪个值最近有变化?
how to check if item is selected from a comboBox in C#
我知道你可以这样做,
if (MyComboBox.SelectedIndex >= 0)
{
//do stuff
}
我遇到的问题是,由于组合框的数量,我将事件处理程序组合到一个处理程序中,如果我能帮助它,每个组合框都有一个事件是不切实际的。
有没有办法让变量分配给你组合框的名称,哪个值最近被更改了?或者我是否必须为每个组合框使用单独的事件处理程序?
答案 0 :(得分:1)
实际上,当您对所有组合框使用单个事件处理程序时,跟踪最近的组合框更改将非常容易。你可以按照以下方式做。
string lastComboName=""; // define global variable
//common event handler for all combobox
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var cmb = (ComboBox)sender;
lastComboName = cmb.Name;
}
答案 1 :(得分:1)
希望每个comboBox都有一个唯一的名称,然后我们可以使用这些名称来识别哪一个是事件的发送者:现在考虑以下代码:
private void CboFirst_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ComboBox selctedComboBox = sender as ComboBox;
string ComboName = selctedComboBox.Name;
// Do something
}
现在跟踪最后更新的ComboBox,您可以通过保留一个全局变量并在每个触发器中更新它来实现这一点,所以每次它保持最新值(组合框的名称)