动态添加combobox控件及事件的问题

user2007001 2012-12-28 03:26:01
在窗体上循环添加combobox控件,每次cboCXZD、cboCXTJ两个控件,其中cboCXZD数据源为ACCESS数据库t1的字段名,cboCXTJ为对应字段值的集合(通过查询语句Group By去重复的),问题:
1、如何实现cboCXTJ值Trim后为非空时,自动创建添加一组cboCXZD、cboCXTJ控件?
2、新建的一组cboCXZD、cboCXTJ控件,cboCXZD的Items中如何去掉之前所有的cboCXZD控件值?


怕引起误会,下面是理想应用:



1、表t1有品名、型号、数量、有效期,第一次添加一组cboCXZD、cboCXTJ控件,cboCXZD控件Items中有“品名、型号、数量、有效期”,当我在cboCXZD选择品名时,cboCXTJ控件Items就变成了品名对应的记录(Group By去重复后的);当我cboCXTJ的值发生改变且为空时,自动创建一组cboCXZD、cboCXTJ控件。
2、新建的一组cboCXZD、cboCXTJ控件,此时cboCXZD控件Items中有“型号、数量、有效期”,即字段名合集去之前出现的cboCXZD的值。



分不多,诚心求知,请赐教,拜谢!

以下是我的代码,只能创建第一次,不能实现事件
private int i = 0;

private void AddControl(int i)
{
ComboBox cboCXZD= new ComboBox();
cboCXZD.Location = new System.Drawing.Point(271 * i + 9, 68);
cboCXZD.Size = new System.Drawing.Size(79, 20);
cboCXZD.Name = "cboCXZD" + i.ToString();
this.Controls.Add(cboCXZD);
ComboBox cboCXTJ = new ComboBox();
cboCXTJ.Location = new System.Drawing.Point(271 * i + 93, 68);
cboCXTJ.Size = new System.Drawing.Size(178, 20);
cboCXTJ.Name = "cboCXTJ" + i.ToString();
this.Controls.Add(cboCXTJ);
cboCXTJ.SelectedValueChanged += new System.EventHandler(cboCXTJ_SelectedValueChanged);
i++;
}

private void cboCXTJ_SelectedValueChanged(object sender, EventArgs e)
{
ComboBox cboTMP = (ComboBox)sender;
if (cboTMP.SelectedText.Trim() != "")
{
AddControl(i+1);
}
}
...全文
191 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
咖啡老猫 2013-01-04
  • 打赏
  • 举报
回复
cboCXTJ.SelectedValueChanged += new System.EventHandler(cboCXTJ_SelectedValueChanged); 你换成SeletectedIndexChanged试试,你现在的的ComboBox我没有看见数据绑定 combobox.DataSource = ... 如果你是直接用combboBox.items.add()的话可能没有SelectedValueChanged 事件
user2007001 2013-01-04
  • 打赏
  • 举报
回复
没有人回复,自己顶起,求赐教

110,526

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧