读书人

一个动态ComboBox,怎么才能让可选项选

发布时间: 2012-09-16 17:33:17 作者: rapoo

求助一个动态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?



[解决办法]
探讨

按照Return_false的方法,

如果用C# code
Cmb.SelectedIndexChanged += (o, i) => {
Cmb.Items.Remove(Cmb.SelectedItem);//索引发生变化时,移除选中当前项目
};


则此事件根据没有响应,
如果用C# code
Cmb.Selecte……

[解决办法]
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"]);
}

读书人网 >C#

热点推荐