C# 如何访问设计Windows窗体C
我对Windows窗体非常陌生,我知道C语言,只是不在同一个上下文中。我四处搜索了一段时间,在我看来,每个解决方案都在做类似的事情:C# 如何访问设计Windows窗体C,c#,winforms,C#,Winforms,我对Windows窗体非常陌生,我知道C语言,只是不在同一个上下文中。我四处搜索了一段时间,在我看来,每个解决方案都在做类似的事情: Label1.Text = "I'm a label". 但我不明白Label1是从哪里来的。 我所拥有的只是一个新的Windows窗体应用程序,它附带一个预加载的窗体和一个程序类。因此,由于这个类附带了一些代码,我认为这将是访问标签属性的一种逻辑方式: static class Program { static void Main(String[] a
Label1.Text = "I'm a label".
但我不明白Label1是从哪里来的。
我所拥有的只是一个新的Windows窗体应用程序,它附带一个预加载的窗体和一个程序类。因此,由于这个类附带了一些代码,我认为这将是访问标签属性的一种逻辑方式:
static class Program
{
static void Main(String[] args)
{
FormUpdate frmUpdate = new FormUpdate();
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(frmUpdate);
// Why isn't this a suitable way of getting the label?
frmUpdate.label1.Text = "I cause an error!";
}
}
但我不明白Label1是从哪里来的
有人使用Visual Studio Designer for Windows窗体,将标签组件拖放到窗体上。由于VisualStudio无法为它们命名,但需要一个名称,所以它只是简单地计算。第一个丢弃的标签称为Label1
默认情况下,添加的那些控件的访问说明符是私有的,我建议保持这种方式。如果要与表单交互,可以从表单内部进行交互,也可以编写一个调用的公共方法,该方法将设置所有私有属性,如某个标签的文本
一般来说,Application.RunfrmUpdate;正在运行程序,基于您提供的起始表单。之后的任何事情都不会有什么效果。因此,您运行表单并在关闭表单后设置标签。这不会有任何明显的效果。您需要在运行窗体之前或在运行窗体时执行此操作。我猜是因为窗体必须在应用程序对象的上下文中运行。这意味着表单中的所有活动都必须在对Application.Run的调用中进行。还要注意,表单控件的默认值为private。表单项目有一个designer cs文件,在表单初始化的构造函数期间,在该文件中添加控件。您不应该将任何代码放入Program.Cs文件中。要将对象添加到表单中,必须在其构造完成后进行。表单在构造函数中有一个块,因此它不会终止。所以你的代码永远不会被执行。表单中的Initialize方法构造了所有控件,就像你的标签一样。明白了,谢谢大家。我只是觉得Program.cs应该是你可以删除的东西,而不是我在那里开始编程的另一个类。我发现Designer.csI知道Label1是从哪里来的,我只是不知道它是从哪里来的。很抱歉我的措辞不好,我已经从Program.cs文件中删除了所有内容并将其放到表单中。第一个删除的标签称为Label1。实际上它被称为label1。他们承诺在秋季vs中修复该漏洞。。