从另一个 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
}
}
我是 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
编辑:
如果你只需要知道选择了哪个选项卡而不需要其他操作,只需在 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
}
}