一个动态ComboBox,怎么才能让可选项选一次少一个
求助一个动态ComboBox,如何才能让可选项选一次少一个。
如上这样一个combobox,如何才能让可选项选一次少一个。
比如在第一个combobox选择了某项
在第二个combobox把此可选项去掉,下拉列表中只显示剩下的可选项。
------解决方案--------------------
动态添加的可以如下操作,添加一个索引变化事件,对本身进行操作
- C# code
ComboBox Cmb = new ComboBox(); Cmb.DropDownStyle = ComboBoxStyle.DropDownList; Cmb.Name = dr["name"].ToString(); Cmb.Size = new Size(200, 21); Cmb.Location = new Point(0, 25 * i + 5); Cmb.Items.Add(""); for (int j = 0; j < dtParm.Rows.Count; j++) { Cmb.Items.Add(dtParm.Rows[j][1].ToString()); } panel2.Controls.Add(Cmb);
如上这样一个combobox,如何才能让可选项选一次少一个。
比如在第一个combobox选择了某项
在第二个combobox把此可选项去掉,下拉列表中只显示剩下的可选项。
------解决方案--------------------
动态添加的可以如下操作,添加一个索引变化事件,对本身进行操作
- C# code
ComboBox Cmb = new ComboBox(); Cmb.Items.Add(1); Cmb.Items.Add(2); Cmb.Items.Add(3); Cmb.Items.Add(4); Cmb.SelectedIndexChanged += (o, i) => { Cmb.Items.Remove(Cmb.SelectedItem);//索引发生变化时,移除选中当前项目 }; this.Controls.Add(Cmb);
------解决方案--------------------
Cmb还没panel2.Controls.Add(Cmb);
就想RemoveAt?
------解决方案--------------------
------解决方案--------------------
this.cbx_UnEData.Items.Clear();
if (dt.Rows.Count > 0)
{
this.cbx_UnEData.Visible = true;
foreach (DataRow dr in dt.Rows)
{
this.cbx_UnEData.Items.Add(dr["sdate"]);
}