C# - 在构造函数中加载方法

时间:2011-06-22 16:11:44

标签: c# .net windows constructor

有人可以解释为什么执行此方法(在构造函数中)会抛出语法错误:

public partial class Form1 : Form
{
    public Form1()
    {
        Load += YourPreparationHandler;
    }

    private void YourPreparationHandler(object sender, EventArgs e)
    {
        button22_Click(sender, e);
    }
}
  

名称'button22_Click'没有   存在于当前背景中

3 个答案:

答案 0 :(得分:5)

button22_ClickForm1的成员吗?检查方法是否存在,错误是非常自我解释的。

答案 1 :(得分:4)

button22_Click是否在任何地方定义?如果不是,那将是问题。

答案 2 :(得分:1)

通常在构造函数中有这样的东西:

public Form1()
{
   InitializeComponent();
}

表单类被设置为部分类。这是因为在Visual Studio中将组件拖放到表单上时,VS在后面用更新来更新设计器文件。

所以,你会有

Form1.cs的

Form1.Designer.cs

可能

Form1.xx.resx(如果您已实施全球化)

如果查看设计器文件,您将看到Visual Studio正在生成代码的类似内容:

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.buttonTest = new System.Windows.Forms.Button();
            this.textBoxPW = new System.Windows.Forms.TextBox();
            this.label1 = new System.Windows.Forms.Label();
            this.textBoxOutput = new System.Windows.Forms.TextBox();
            this.label2 = new System.Windows.Forms.Label();
            this.SuspendLayout();
            // 
            // buttonTest

我打赌设计器文件丢失,搞砸了,或者偶然删除了InitializeComponent。在任何情况下,对象(button_22)都不存在或未被引用,因此您将无法在其上引发单击事件。