在我开始之前,我想说我已经在互联网上寻找了一段时间的答案,并且无法找到解决方案。我知道如何解决这个问题,但它并不想工作。
以下是我所知道的:假设我有一个标签和另一个类,如果我想操作标签我需要创建一个具有标签的表单实例,请调用新类的方法使用表单,然后从更改标签的表单类中调用该方法。这就是我所拥有的。
这是来自表单类
private void button1_Click(object sender, EventArgs e)
{
Question steve = new Question(1, 1, "nothing", new string[] {});
steve.Show(new Form1(), "I win");
}
public void ChangeLabel(string s)
{
this.lblTest.Text = s;
}
这是问题类
public void Show (Form1 f, string str)
{
f.ChangeLabel(str);
}
语法 - 这是正确的,并且在运行调试器时,lblTest.Text确实等于"我赢了#34;,但表单上没有视觉上的变化。
P.S。我在高中并且还在学习C#,所以如果我在解释或代码中犯了任何错误,请指出它们。另外,忽略问题构造函数,它现在没用了。
由于
答案 0 :(得分:0)
不!您无需创建表单的新实例。
您必须使用this
关键字传递当前实例:
private void button1_Click(object sender, EventArgs e)
{
Question steve = new Question(1, 1, "nothing", new string[] {});
steve.Show(this, "I win"); //change it
}