从C#形式的组合框窗口的选定值中搜索
本文关键字:搜索 窗口 组合 | 更新日期: 2023-09-27 18:21:22
我在一个表单中有大约10个组合框,我需要做的是,如果从任何组合框(可能是1个或多个组合框)中选择了一个项目,搜索字符串数组和从组合框中选择的值是否一致,但不包括尚未选择或更改的组合框,我只是想知道是否有办法做到这一点。
您应该能够存储类的信息,这样您就可以确定当前的ComboBox
是否来自其他类。我制作了一个小样本,它使用SelectedIndexChanged
上的事件处理程序跟踪对ComboBox
所做的更改,并使用LINQ来过滤和排除当前的ComboBox
。
List<ComboBox> _allComboBoxes;
ComboBox _comboBox1;
ComboBox _comboBox2;
string[] _values;
void InitForm()
{
// TODO Implement values.
_values = new string[0];
_allComboBoxes = new List<ComboBox>();
_comboBox1 = new ComboBox();
_allComboBoxes.Add(_comboBox1);
_comboBox1.SelectedIndexChanged += ComboBoxSelectedIndexChanged;
_comboBox2 = new ComboBox();
_allComboBoxes.Add(_comboBox2);
_comboBox2.SelectedIndexChanged += ComboBoxSelectedIndexChanged;
}
void ComboBoxSelectedIndexChanged(object sender, EventArgs e)
{
if (HasCoincidence(sender as ComboBox, _values, _allComboBoxes))
{
throw new InvalidOperationException("Coincidence occurred.");
}
}
bool HasCoincidence(ComboBox comboBox, string[] values, IEnumerable<ComboBox> allComboBoxes)
{
IEnumerable<ComboBox> excludedComboBoxes = allComboBoxes.Where(c => c != comboBox);
throw new NotImplementedException("Implement ComboBox to string[] comparison.");
}