我有一个全局变量类,如下所示:
internal static class GlobalVariables
{
public static PortBrowserForm open;
}
PortBrowserForm
类是一个Windows Form类,它有一个计时器,想要使用它的属性,如下所示(另一种形式):
// In that other form...
GlobalVariables.open.timer1.Enabled = true;
但我不能称之为。我只能从GlobalVariables.open
变量调用一个函数(已经是一个表格)。请帮忙。
答案 0 :(得分:0)
在那里检查PortBrowserForm .designer.cs/vb
文件,您可以找到表单所有控件的声明。从那里将访问级别更改为public
,您只需创建表单实例即可从任何表单访问该访问级别。
要在另一个中访问一个表单控件,您需要在另一个表单的构造函数中传递第一个表单。假设我们有两种形式
Form1.cs
Form2.cs
In some event of form1 , call form2.
frm1Btn_Click()
{
form2 f2 = new form2(this);
f2.Show();
}
在form2中创建一个重载的构造函数,Form1作为参数并拾取form1及其所有控件。
答案 1 :(得分:0)
GlobalVariables.open.timer1.Enabled = true;
要使上述代码生效,您需要制作timer1
的修饰符public
或至少internal
。但是......不要这样做,永远不要公开字段public
,因为你无法控制正在做的。
而是创建一个为您完成工作的方法。
class PortBrowserForm : Form
{
public void SetTimerEnabled(bool enabled)
{
timer1.Enabled = enabled;
}
}
然后使用
GlobalVariables.open.SetTimerEnabled(true);