有两张表,表1和表2,有两个控件ComboBox控件和一个DataGridView控件.
想实现:当在ComboBox中选中"表1"时,DataGridView中显示"表1"的内容;
       当在ComboBox中选中"表2"时,DataGridView中显示"表2"的内容.
也就是说要实现ComboBox与DataGridView的联动,请问应该如何编写代码?(给出关键语句也可) 谢谢了!

解决方案 »

  1.   

    ComboBox有个selectedchanged监听啊,建立这个ComboBox的时候,同时加载这个监听,那么每次ComboBox的选项变化的时候,都会触发。你再监听方法里判断当前ComboBox选中的项是表一还是表二就ok了,可以通过selectedindex判断,如果ComboBox里表一是第一项,表二第二项,那么selectedindex为0就是表一,为1就是表二。为0时,你就将DataGridView内容赋值为表一(先清空一下),为1时赋值为表二就ok了
      

  2.   

    combobox的selectedchanged事件中,判断
    if(combobox.text=="表1")
    {
    //绑定表1的数据
    databind("表1");
    }
    else
    {
    //绑定表2的数据
    databind("表2");
    }
      

  3.   

    selectindexchanged 事件里动态改datagridview的datasoure就行了
      

  4.   

    ojekleen(三尾)的方法很好,很实际,不过能否动态的传值呢,也就是说不用if... else...的方法,不然的话一旦表多了,将会非常麻烦,我是这么写的:
              da.Fill(ds, "tableName");
              dataGridView1.DataSource = ds.Tables["tableName"].DefaultView;
    tableName是形参,当然了,上面两句对tableName的引用方法应该是不对的,所以就想问问这个应该怎么解决?
      

  5.   

    在查询返回数据集的方法SlcAll()里传下拉列表的选中的表(或者通过值来转换成表)
    调用该方法同时设置返回数据集的表名

    this.ds = xx.SlcAll(this.cbo.text.toString());{在调用的方法里完成SQL语句的构建,以及设置ds的TableName}
    dataGridView1.DataSource = ds.Tables[0].DefaultView;这就OK了!