日期:2014-05-18  浏览次数:21077 次

请求指教,C#中tabControl不同的tabPage页面,能不能公用同dataGridView来显示数据呢
刚才发的帖子说得不太清楚,再补发一张,麻烦各位帮帮忙


我的程序中C#中tabControl不同的tabPage实现的功能几乎一样,只是过滤的条件不同。我的tabPage1中设置了
两个GridView,一个用来装数据,一个用来模糊查询。
我怎么实现点击tabPage2后实现的代码和tabPage1后,经过一个查询条件的过滤后,实现的功能也一样呢?请看图:


http://my.csdn.net/my/album/detail/1173898
我想点击西药界面,中药等都能按条件查询出来


------解决方案--------------------
先拖一个 datagridview 到 tabPage1 里,设置好列大小样式什么的,然后需要显示 tabPage1 时,先把数据绑定到 datagridview 里,再把 datagridview 加到 tabPage1.Controls 里,需要显示 tabPage2 时,也先把数据绑定到 datagridview 里,再把 datagridview 从 tabPage1.Controls 里移除,加到 tabPage2.Controls 里,实现共用
------解决方案--------------------
那就不要把datagridview放在tab里,即然是共用,那就放出来。

设计一下整体外观即可。
------解决方案--------------------
探讨

呵呵,能不能写举例写些代码实例给我看看呢

------解决方案--------------------
接 1楼 ,注册 tabContro 的 Selected 事件,事件方法如下
C# code
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);
    }
}

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

------解决方案--------------------
那就在同一个卡里面同一个控件就好哦何必另外?
------解决方案--------------------


楼主似乎在做医嘱

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