就是这样。这是一个愚蠢(令人尴尬!)的问题,但我以前从未使用过 C#,只使用过 C++,而且我似乎无法弄清楚如何从辅助表单访问主表单上的标签并更改文本。如果有人能让我真正快速地知道该怎么做,我将不胜感激!
顺便说一句,我真的应该澄清一下。抱歉:我有两个单独的 .cs 文件,每个文件如下所示。我在 VS2008 中使用 [Designer] 在 Form1 中添加标签。当我输入类似 Form1.label1 的内容时,它无法理解。下拉列表显示了 Form1 的方法和属性列表,但只有大约 7 个,例如 ControlCollection、Equals、MouseButtons 和其他几个...我可以在 Form1 中公开定义一个变量并显示,但我不知道如何访问标签...
namespace AnotherProgram
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
}
}
最佳答案
您需要引用 Form1 的实例 - 例如,如果 Form1 正在构造 Form2,您可以将 this
作为构造函数参数传入。
然后您需要通过一个属性(或者 - ick! - 一个非私有(private)字段)公开 Form1 的标签,或者编写一个方法/属性来设置标签的文本。例如:
public class Form1 : Form
{
private Label label;
// Construction etc as normal
public string LabelText
{
get { return label.Text; }
set { label.Text = value; }
}
public Form2 CreateForm2()
{
return new Form2(this);
}
}
public class Form2 : Form
{
private Form1 form1;
public Form2(Form1 form1)
{
this.form1 = form1;
// Normal construction
}
public void SayHello()
{
form1.LabelText = "Hello";
}
}
关于c# - 如何在 Form1 上制作一个标签,从 form2 说 "Hello"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/265849/