从另一个 class 得到 tabControl1.SelectedIndex

Get tabControl1.SelectedIndex from another class

我是 C# 的初学者,在将 class 中定义的对象的属性获取到不同的 class 中时,我总是遇到一些问题。也许 C# 有一部分我没学过。我使用以前的开发人员制作的现有项目。

我简化了,我有两个 class :一个包含我所有的对象和事件 :

public partial class MainWindow : Form
    {
      [...]  //code
    }

另一个 class 处理与设备的通信(蓝牙):

public class GCOM
    {
       [...]  //code
    }

在我的 MainWindow class 中,我有一个带有两个 tabPage 的 tabControl 对象。 在我的GCOM class中,我想获取tabControl tabControl1.SelectedIndex的属性,但在实际上下文中无法识别。

public class GCOM
        {
               if (tabControl1.SelectedIndex == 1)
               {
                  [...]  //code
               }
        }

我该怎么办?

谢谢!

首先确保 tabControl1 在 Form.Designer.cs 中是 public。比在 GCOM class 获取 Form 实例,您可以通过 form.tabControl1

访问 tabControl1

编辑:
如果你只需要知道选择了哪个选项卡而不需要其他操作,只需在 Form:

创建适当的方法即可
public int getSelectedTabIndex{
   return tabContol1.SelectedIndex;
}

好的,谢谢大家,我使用了这样的调用方法,它正在工作:

主要形式:

public partial class MainWindow : Form
{
    public int getSelectedTabIndex()
    {
        if (tabControl1.InvokeRequired)
            return (int)tabControl1.Invoke(new Func<int>(getSelectedTabIndex));
        else
            return tabControl1.SelectedIndex;
    }
}

第二种形式:

public class GCOM
{
    if (MainWindow.GetInstance().getSelectedTabIndex() == 1)
    {
        // code
    }
}