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

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;
  }
  }

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

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