有两个问题
1、就是在窗体加载的时候,会自动执行一次combobox的selectedindexchanged的事件,怎么禁止它呢
2、我做的是一个combobox和其它的2个combobox联动的东西,就是说根据第一个combobox的选项来决定其它两个combobox的选项内容,联动是做出来了,可是这两个combobox怎么会一起动呢,也就是说在我选择“学历”(第一个combobox里的内容)时,其它两个的选项就变成“小学,中学,大学”,这点我做到了,可是,我在其中的一个里面选择了“大学”,怎么剩下的那个也跟着变成了“大学”,我想让它们分别选择不同的选项,怎么做得到呢,(说明一下,这两个combobox是同一个数据源)
在线等各位高手解答,多谢,(“多空”在么)
1、就是在窗体加载的时候,会自动执行一次combobox的selectedindexchanged的事件,怎么禁止它呢
2、我做的是一个combobox和其它的2个combobox联动的东西,就是说根据第一个combobox的选项来决定其它两个combobox的选项内容,联动是做出来了,可是这两个combobox怎么会一起动呢,也就是说在我选择“学历”(第一个combobox里的内容)时,其它两个的选项就变成“小学,中学,大学”,这点我做到了,可是,我在其中的一个里面选择了“大学”,怎么剩下的那个也跟着变成了“大学”,我想让它们分别选择不同的选项,怎么做得到呢,(说明一下,这两个combobox是同一个数据源)
在线等各位高手解答,多谢,(“多空”在么)
2. 同一个数据源肯定不行啦,要用两个不同的,你可以把其中一个DataTable用Copy()方法到另一个DataTable,分别绑定。
第二个问题的方法,copy()是什么方法,怎么用呢,要是我想放的combobox很多的话,比如说20个,那要绑定20个数据源岂不是很麻烦吗,能说得详细些么,多谢
{
ConnectDB();//连接数据库
adapter=new OleDbDataAdapter(@"select * from OpSort",conn);
adapter.Fill(datOpe);
adapter.SelectCommand.CommandText=@"select * from Project";
adapter.Fill(datPro1);
CloseDB();//断开数据库
LoadOpe();//生成第一个combobox
}
private void LoadOpe()
{
if(datOpe.Rows.Count>0)
{
NewSort.DataSource=datOpe;
NewSort.DisplayMember="OperationSort";
}this.NewSort.SelectedIndexChanged += new System.EventHandler(this.NewSort_SelectedIndexChanged);
}
private void LoadPro()
{
if(NewSort.SelectedIndex>=0)
{
datPro.DefaultView.RowFilter="ParentID='"+datOpe.Rows[NewSort.SelectedIndex]["ParentID"].ToString().Trim()+"'";
NewProName1.DataSource=datPro.DefaultView;//第二个combobox
NewProName1.DisplayMember="ProjectName";
this.NewProName1.SelectedIndexChanged += new System.EventHandler(this.NewProName1_SelectedIndexChanged);
NewProName2.DataSource=datPro.DefaultView;//第三个combobox
NewProName2.DisplayMember="ProjectName";
this.NewProName2.SelectedIndexChanged += new System.EventHandler(this.NewProName2_SelectedIndexChanged);
}
System.Data.DataSet ds2 = new System.Data.DataSet();
System.Data.DataSet ds2 = new System.Data.DataSet();
……
……
ds1 = datOpe.Clone;
ds2 = datOpe.Clone;
ds3 = datOpe.Clone;分别把ds1 ds2 ds3绑定到不同的combobox上
adapter.Fill(datPro1);
datPro2=datPro1.Clone();
datPro3=datPro1.Clone();没有成功啊
2.ComboBox的联动问题的确是因为使用了同一个数据源.解决的办法楼上的各位都说了,还是用Copy()比较好,Clone()只能复制数据结构.Copy()的用法是这样的:
comboBox1.DataSource=dataTable1;
comboBox1.DisplayMember="Column2";
DataTable dtbTmp2=dataTable1.Copy();
comboBox2.DataSource=dtbTmp2;
comboBox2.DisplayMember="Column2";