在其他选项卡中禁用鼠标事件

时间:2016-10-28 03:33:12

标签: c# winforms tabs devexpress

我使用xtra标签,我有3个标签。每个标签都是相同的按钮,因为我把它放在一个面板中。我想要的是当我切换到标签3时如何禁用按钮功能或事件,但当我切换到标签1和标签2时仍然可以运行该功能。

private void simpleButton1_Click(object sender, EventArgs e)
{
add_rec()
}

private void xtraTabControl1_MouseDown(object sender, MouseEventArgs e)
{
DevExpress.XtraTab.ViewInfo.XtraTabHitInfo hi = xtraTabControl1.CalcHitInfo(e.Location);
   if (hi.HitTest == DevExpress.XtraTab.ViewInfo.XtraTabHitTest.PageHeader)
      {
      if (hi.Page.Name == "xtraTabPage1")
            {

            }

      if (hi.Page.Name == "xtraTabPage2")
            {

            }

     if (hi.Page.Name == "xtraTabPage3")
            {

            }
      }
}

我应该在这里放什么代码?

我使用devexpress

enter image description here

不使用按钮上的启用或可见属性

2 个答案:

答案 0 :(得分:1)

这应该可以解决问题:

private void simpleButton1_Click(object sender, EventArgs e)
{
   if (xtraTabControl1.SelectedTabPage == tabPage1 ||    xtraTabControl1.SelectedTabPage == tabPage2)
   {   
     add_rec();
   }
}

这是你在找什么?这将检查选择哪个TabPage,如果TabPage1或2处于活动状态,则运行该功能。

请注意,每个TabPage都是一个自己的对象,如果您创建XtraTabControl,它将由设计器自动创建。

答案 1 :(得分:1)

以下列方式处理XtraTabControl的SelectedPageChanging event

private void xtraTabControl1_SelectedPageChanging(object sender, DevExpress.XtraTab.TabPageChangingEventArgs e)
{
    btnMyButton.Enabled = (e.Page == xtraTabPage1 || e.Page == xtraTabPage2);    
}