四个combobox的下拉框选项都为1.2.3.4,在如果选项中的1被选后,其他的combobox就不能继续选择1,其他的也一样
添加SelectedIndexChanged事件,然后用数组的记录住每个combox选中的值,判断已经存在则还原为原来的值,示例代码如下
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Data.SqlClient;
namespace WindowsFormsApp8
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int[] texts = new[] { -1, -1, -1, -1 };
private void comboBox_SelectedIndexChanged(object sender, EventArgs e)
{
var o = (ComboBox)sender;
var index = int.Parse(o.Name.Replace("comboBox", "")) - 1;//注意combobox的name起得有规律,依次为comboBox1~comboBox4
var SelectedIndex = o.SelectedIndex;
if (SelectedIndex == -1) return;
if (texts.Contains(SelectedIndex))
{
MessageBox.Show("已经选过!");
o.SelectedIndex = texts[index];//还原
}
else texts[index] = SelectedIndex;
}
private void button1_Click(object sender, EventArgs e)
{
texts = new[] { -1, -1, -1, -1 };
comboBox1.SelectedIndex = comboBox2.SelectedIndex = comboBox3.SelectedIndex = comboBox4.SelectedIndex = -1;
}
}
}
可以通过onchange事件去动态更新后面下拉框的列表,不能选择的选项不显示在下拉项。
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!