我有两种形式。 Form1有一个标签,Form2有一个按钮。我将Form2添加到Form1作为控件。当我点击按钮时,我希望标签更新。
Form1的代码:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
RunTest();
}
private void RunTest()
{
Form myForm2 = new Form2();
myForm2.TopLevel = false;
this.Controls.Add(myForm2);
myForm2.Show();
}
public static void UpdateLabel()
{
label1.Text = "Button Pressed"; //ERROR
}
}
Form2的代码:
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form1.UpdateLabel();
}
}
调用UpdateLabel()要求它是静态的,但是我无法更新Label1.Text
对于这种情况,我有什么建议吗?我希望在我开始工作时向Form1添加许多Form2。
答案 0 :(得分:0)
在Form2
中添加Form1
类型的属性,并使用this
中的Form1
进行分配。
private void RunTest()
{
Form myForm2 = new Form2();
myForm2.otherform = this; // <--- note this line
myForm2.TopLevel = false;
this.Controls.Add(myForm2); // TODO: why is this line here?
myForm2.Show();
}
然后你可以
private void button1_Click(object sender, EventArgs e)
{
otherform.UpdateLabel();
}
如果你UpdateLabel()
非静态
public void UpdateLabel()
{
label1.Text = "Button Pressed";
}