从Form1开始,我一直在打开Form2。如果我然后单击一个按钮或Form1中的任何内容,我希望激活Form2。像
这样的东西Form2.Activate();
但这只是给我错误。
这是我现在的代码:
private void button1_Click(object sender, EventArgs e) // first I click here
{
Form2 f2 = new Form2();
f2.Show();
}
private void button2_Click(object sender, EventArgs e) // then here, to activate it
{
Form2 f2 = new Form2();
f2.Activate();
}
答案 0 :(得分:2)
我认为你需要创建一个类的实例才能访问实例方法。基本上,实例是通过构造函数调用创建的,如下所示:
Form2 form = new Form2();
但是,显示新创建的表单的方法是这样的:
form2.Show();
答案 1 :(得分:2)
你有这个错误,因为应该从Form2类的实例调用Activate方法,而不是Form2类的自身,Activate()不是静态方法,你必须首先实例化Form2类,这个事件处理程序用于单击第一个表单上的按钮
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Show();
}
这是为了显示表单,要激活它并使其成为向您显示的主要表单,您可以将Activate()方法调用到该实例,例如
form2.Show();
form2.Activate();
答案 2 :(得分:1)
将Form2引用移出 Class 级别,以便可以从button1和button2访问它。
像...一样的东西。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Form2 f2 = null;
private void button1_Click(object sender, EventArgs e) // first I click here
{
if (f2 == null || f2.IsDisposed)
{
f2 = new Form2();
f2.Show();
}
else
{
ActivateForm2();
}
}
private void button2_Click(object sender, EventArgs e) // then here, to activate it
{
ActivateForm2();
}
private void ActivateForm2()
{
if (f2 != null && !f2.IsDisposed)
{
if (f2.WindowState == FormWindowState.Minimized)
{
f2.WindowState = FormWindowState.Normal;
}
f2.Activate();
}
}
}