“InitializeComponent”方法中的代码由设计者生成,不应手动修改

问题描述 投票:0回答:4

为了在开始时加载我的 ComboBox,我在

LoadDataFromDB()
方法中使用了我的方法
InitializeComponent()
,但有一个警告说:

“InitializeComponent”方法中的代码由 设计师,不应手动修改

那么我可以在哪里加载我的组合框?

c# winforms
4个回答
5
投票

使用表单的构造函数

public Form1()
{
    InitializeComponent();
    LoadDataFromDB();
}

或者(有时更好Form.Load事件处理程序(当您在设计器中双击表单时,它将自动添加):

private void Form1_Load(object sender, EventArgs e)
{
    LoadDataFromDB();
}

另一个选项是覆盖

OnLoad
表单方法。

注意:您会看到此警告,因为

InitializeComponent
是由设计器生成的,当您在设计器中更改某些内容(添加一些控件、移动或调整某些控件的大小、更改颜色等)时,它将完全重新生成。因此,您对此方法的所有更改都将消失。


3
投票

直接在调用InitializeComponent之后,或者只要在InitializeComponent()之后。

public FormName()
{
   InitializeComponent();
   LoadDataFromDB();
}

注意:您可能在 Visual Studio 设计器视图中看不到这些控件


1
投票

您不需要在

InitializeComponent
方法中加载它。之后您就可以调用您的方法
LoadDataFormDB()

InitializeComponent();
LoadDataFormDB();

您还可以阅读该方法上方的评论,其中写着:

'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer. 
'Do not modify it using the code editor.

0
投票

设计器无法处理第 261 行的未知名称“button2_Click”。“InitializeComponent”方法中的代码由设计器生成,不应手动修改。请删除所有更改并尝试再次打开设计器。 前往代码

此错误的实例(1)

  1. TH Form1.Designer.cs 行:261 列:1 显示调用堆栈

在 Microsoft.VisualStudio.Design.Serialization.CodeDom.XML.CodeDomXmlProcessor.CreateVariableKindUnknownException(XmlElementData xmlElement,字符串名称) 在 Microsoft.VisualStudio.Design.Serialization.CodeDom.XML.CodeDomXmlProcessor.XmlElementData.get_CodeDomElement() 在 Microsoft.VisualStudio.Design.Serialization.CodeDom.XML.CodeDomXmlProcessor.EndElement(字符串前缀,字符串名称,字符串瓮) 在 Microsoft.VisualStudio.Design.Serialization.CodeDom.XML.CodeDomXmlProcessor.Parse(XmlReader 阅读器) 在Microsoft.VisualStudio.Design.Serialization.CodeDom.XML.CodeDomXmlProcessor.ParseXml(字符串xmlStream,CodeStatementCollection语句集合,字符串文件名,字符串方法名) 在 Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomParser.OnMethodPopulateStatements(对象发送者,EventArgs e) 在 System.CodeDom.CodeMemberMethod.get_Statements() 在 System.ComponentModel.Design.Serialization.TypeCodeDomSerializer.Deserialize(IDesignerSerializationManager 管理器,CodeTypeDeclaration 声明) 在 System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager 管理器) 在 Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager 序列化管理器) 在 System.ComponentModel.Design.Serialization.BasicDesignerLoader.BeginLoad(IDesignerLoaderHost 主机)

帮助解决此错误

找不到此错误的关联帮助主题。检查 Windows 窗体设计时错误列表

有关此错误的论坛帖子

在 MSDN 论坛中搜索与此错误相关的帖子

© www.soinside.com 2019 - 2024. All rights reserved.