我现在做一个系统,很多地方用到相同的二个下拉框ComboBox,二个列表是联动的,但也有一些地方只用到它们其中的一个,即:选择大类商品,第二个列表框是小类商品,有时只用大类商品,有时只用到小类商品考虑到能多次使用,我现在的做法是:做二个各自独立自定义控件,都继承于ComboBox,只要用到的地方,拖出来就可以了。可现在问题是:第一个大类商品很好写,可是第二个小类商品我不知道怎么让他们联动起来,就是说,我选大类商品后,小类商品能显示出对应的小类商品。
调试欢乐多
public Form1()
{
InitializeComponent();
this.Load+=new EventHandler(Form1_Load);
comboBox1.SelectedIndexChanged+=new EventHandler(comboBox1_SelectedIndexChanged);
}
protected void comboBox1_SelectedIndexChanged(object sender,EventArgs e)
{
if (comboBox1.SelectedIndex == 0)
{
comboBox2.Items.Clear();
comboBox2.Items.Add("sss2");
comboBox2.Items.Add("sss2");
comboBox2.Items.Add("sss2");
}
if (comboBox1.SelectedIndex == 1)
{
comboBox2.Items.Clear();
comboBox2.Items.Add("aaa2");
comboBox2.Items.Add("aaa2");
comboBox2.Items.Add("aaa2");
}
}
private void Form1_Load(object sender, EventArgs e)
{
comboBox1.Items.Add("sss1");
comboBox1.Items.Add("sss1");
comboBox2.Items.Add("sss1");
}
public class Small : ComboBox
{ } //大类
public class Big : ComboBox
{
private Small _small = null; public Small Small
{
get
{
return _small;
}
set
{
_small = value;
}
} protected override void OnSelectedIndexChanged( EventArgs e )
{
if ( _small != null )
{
//加上你要重新加载小类数据的代码
}
base.OnSelectedIndexChanged( e );
}
}
.DataSource = ds;
.DataMember = "pTableName";第二个下拉绑定那个 relation 为数据源
.DataSource = ds;
.DataMember = "relationname";