刚才发的帖子说得不太清楚,再补发一张,麻烦各位帮帮忙
我的程序中C#中tabControl不同的tabPage实现的功能几乎一样,只是过滤的条件不同。我的tabPage1中设置了
两个GridView,一个用来装数据,一个用来模糊查询。
我怎么实现点击tabPage2后实现的代码和tabPage1后,经过一个查询条件的过滤后,实现的功能也一样呢?请看图:
http://my.csdn.net/my/album/detail/1173898
我想点击西药界面,中药等都能按条件查询出来

解决方案 »

  1.   

    先拖一个 datagridview 到 tabPage1 里,设置好列大小样式什么的,然后需要显示 tabPage1 时,先把数据绑定到 datagridview 里,再把 datagridview 加到 tabPage1.Controls 里,需要显示 tabPage2 时,也先把数据绑定到 datagridview 里,再把 datagridview 从 tabPage1.Controls 里移除,加到 tabPage2.Controls 里,实现共用
      

  2.   

    那就不要把datagridview放在tab里,即然是共用,那就放出来。设计一下整体外观即可。
      

  3.   


    楼主:不需要代码,我的意思是说,你即然只是查询的条件不同,那么你就把查询条件不同的几类界面元素用tabcontrol控件中的tabpage来放置,在下方也就是tabcontrol正下方放一个datagridview,这个其不是更好吗?为什么非要放在tabpage里呢?
      

  4.   

    接 1楼 ,注册 tabContro 的 Selected 事件,事件方法如下
    private void tabControl1_Selected(object sender, TabControlEventArgs e)
    {
        if (e.TabPage == this.tabPage1)
        {
            // 先绑定 datagridview 要在 tabPage1 里显示数据
            this.tabPage2.Controls.Remove(this.dataGridView1);
            this.tabPage1.Controls.Add(this.dataGridView1);
        }
        else if (e.TabPage == this.tabPage2)
        {
            // 先绑定 datagridview 要在 tabPage2 里显示数据
            this.tabPage1.Controls.Remove(this.dataGridView1);
            this.tabPage2.Controls.Add(this.dataGridView1);
        }
    }
      

  5.   

    根据这样绑定的话,但是我要从tabPage2转回tabPage1的话,还能不能看到原来在tabPage1上查询的数据的?
      

  6.   

    看不到的,你可以设置二个全局变量,查询后将值赋给全局变量,绑定时从全局变量取值给 datagridview
      

  7.   

    楼主似乎在做医嘱把DataGridView做一个用户控件,传一个查询条件进去,用DataTable.Select("过滤条件");
    每个TabPage传不同条件就可以了,这样就可以实现楼主的需求了