我有一个简短的问题。
我怎么称呼这个子
private void test()
{
panel1.visible = false;
panel2.visible = false;
}
换成其他形式?
我试过这个
private static void
问题是我无法在我的sub中添加/包含面板控件。我已将控件的修饰符更改为public
我该怎么办才能以其他形式执行那种代码。
答案 0 :(得分:1)
我假设您的包含测试方法的表单已打开。您可以执行此操作(作为第一个选项):
//Replace Form1 as the name of your form
Form1 frm = (Form1)Application.OpenForms[0]; //If there are only two forms, 0 index will work fine
frm.test();
这将执行您的测试方法并隐藏面板。
确保您的测试公开:
public void test()
{...}
这是另一种选择: 在您拥有测试方法的第一个表单中,将表单作为参数传递给构造函数:
Form2 frm = new Form2(this);
frm.Show();
在您需要访问测试方法的第二个表单中:
public Form2()
{
InitializeComponent();
}
private Form1 form1;
public Form2(Form1 form1)
: this()
{
// TODO: If you have other member initialization
this.form1 = form1;
}
现在您可以访问测试方法并隐藏面板:
form1.test();
答案 1 :(得分:0)
将其更改为
public void test() {
...
}
然后你就可以像
一样调用它form2.test();
答案 2 :(得分:0)
您可以将面板设为静态,也可以从form.test();