日期:2014-05-17  浏览次数:20976 次

C#单击TabControl中选项卡触发的事件
    在目前开发项目的一个功能界面中,我使用了TabControl控件,不同的TabPage界面,有不同的数据录入界面,使用DataGridView控件加载不同的数据,我想实现的功能是,单击不同的tabPage选项卡,即在相应的界面中加载对应的数据。
       下面是我用TabControl的Selected事件写的代码,tp1和tp2是两个TabPage界面,dgvTool和dgvType分别为tp1和tp2中的dataGridView控件,用TabControl的SelectedIndexChanged事件也没有实现目的。
       各位帮忙看看,谢谢!

         private void tabControl1_Selected(object sender,TabControlEventArgs e)
        {
             if(e.TabPage==tp1)
            {
                    string strSql = "select a.subsidiaryToolId as 序号,b.subsidiaryToolTypeName as 工具类型,a.subsidiaryToolCode as 代码,a.subsidiaryToolName as 工具名称,a.pic as 图片,a.remark as 备注" +
                            " from subsidiaryTool a join subsidiaryToolType b on a.subsidiaryToolTypeId=b.subsidiaryToolTypeId";
                    DataSet ds = operateData.getDs(strSql, "tb");
                    dgvTool.DataSource = ds.Tables[0];
                    dgvTool.Columns[0].Visible = false;
                    iniCbTypeId();
             }
             if(e.TabPage==tp2)
             {
                    string strSql1 = "select subsidiaryToolTypeId as 类别序号,subsidiaryToolTypeName as 类别名称,remark as 备注 from subsidiaryToolType";
                    DataSet ds1 = operateData.getDs(strSql1, "tb1");
                    dgvType.DataSource = ds1.Tables[0];
                    dgvType.Columns[0].Visible = false;
            }
        }

------解决方案--------------------
if (e.TabPage.Text == "存档")

------解决方案--------------------
你现在出现的是什么效果?是两次的结果相同还是其他什么结果,说清楚点撒LZ。你用表名试试:
dgvTool.DataSource = ds.Tables[tb];第一个标签页
dgvTool.DataSource = ds.Tables