gpt4 book ai didi

c# 确认每个组合框都选择了唯一值

转载 作者:行者123 更新时间:2023-11-30 23:16:51 26 4
gpt4 key购买 nike

我有一个带有一组组合框的 winform,所有组合框都包含相同的列表项。

我需要一种方法来确认,当用户在每个框中完成选择一个值时,他们只选择了每个列表值一次。

例如:cbox1 cbox2 cbox 3Item A Item B Item A(这需要标记一个错误,因为 Item A 已经在 cbox1 中被选中)

我正在考虑尝试使用 selectedvaluecommited 操作(因为在我填充列表后,我将选定的索引更改为 -1,因此它们都显示“空”开始)但使它工作的循环似乎让我望而却步。

背景:这是选择字段构建电子表格,用户需要选择字段顺序。

最佳答案

你可以这样做(又快又脏):

为所有三个组合框添加 SelectedIndexChanged 处理程序(例如在 Form_Load 中)

comboBox1.SelectedIndexChanged += CheckComboBoxes;
comboBox2.SelectedIndexChanged += CheckComboBoxes;
comboBox3.SelectedIndexChanged += CheckComboBoxes;

在 CheckComboBoxes 方法中进行检查:

 private void CheckComboBoxes(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex == comboBox2.SelectedIndex ||
comboBox1.SelectedIndex == comboBox3.SelectedIndex ||
comboBox2.SelectedIndex == comboBox3.SelectedIndex)
MessageBox.Show("comboboxes are not unique");
}

编辑:这是具有 n 组合框时的方法。将所有项目放入列表,选择不同的值并将该不同的计数与项目计数进行比较......像这样:

private void CheckComboBoxes(object sender, EventArgs e)
{
List<string> comboValues = new List<string>();
foreach (Control c in this.Controls)
{
if (c is ComboBox && !string.IsNullOrEmpty((c as ComboBox).SelectedItem.ToString()))
comboValues.Add((c as ComboBox).SelectedItem.ToString());
}
if (comboValues.Distinct().ToList().Count < comboValues.Count)
MessageBox.Show("not all combos are unique");
}

关于c# 确认每个组合框都选择了唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41831288/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com