【发布时间】:2018-06-03 00:26:29
【问题描述】:
我有一个小的 WinForms 应用程序,在主窗口的中心只有一个按钮。那就是按钮文本是Button 1。 在调用 InitializeComponent 之后,代码中的构造函数 (F7) 将按钮文本更改为 Hello World。
运行时显示“Hello World”,但在设计时设计器显示“按钮 1”。 WinForms 中运行自定义 UI 代码的正确方法是什么。如果我手动将该代码放入设计器文件中,那么下次保存设计器时我的更改将被覆盖。
这是我的代码:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.button1.Text = "Hello World";
}
}
【问题讨论】:
-
如果您愿意,可以从属性窗口更改按钮文本,使其显示与运行时间相同。
-
您也可以进入表单设计器(
Form1.designer.cs)手动编辑您的控件属性。 -
Form1的constr 只会在您启动应用程序后执行,这就是意图。但是,如果您在初始化所有对象和内容后立即设置Text,您已经可以在设计器类中设置Text。顺便说一下,没有后面的代码,这个类和设计器类是partial类,所以两者一起形成一个类(Form1),但是@987654328的设计东西@ 被外包到设计器类中以简化代码以便更好地理解和更清晰的概述。 -
@SeckinCelik:当然,真正的问题要复杂一些(使用特殊方法通过枚举而不是资源设置功能区按钮的图标)。
-
@L.Guthardt:它们是部分的,但似乎设计师在另一个上下文中运行设计文件。因为如果您从设计器文件初始化方法中调用自定义方法,那么设计器将显示一条错误消息:“找不到方法'System.Windows.Forms.Form.xxx'。”
标签: c# .net winforms windows-forms-designer