C# 如何在自定义控件中传递变量?

C# 如何在自定义控件中传递变量?,c#,constructor,visual-studio-express,C#,Constructor,Visual Studio Express,我在VSE中的C#中创建了一个自定义控件,它显示在左侧的列表中。但是我想传递一个对我的主窗体的引用,我目前正在构造函数中这样做。然后我手动编辑了VSE设计器生成的代码来传递表单本身。但此后,当我尝试使用designview时,VSE会显示一条错误消息。我做错了吗 class canvas : Control { public canvas(Form1 theForm) { } } 然后在设计器生成的代码中: this.canvas2 = new panel

我在VSE中的C#中创建了一个自定义控件,它显示在左侧的列表中。但是我想传递一个对我的主窗体的引用,我目前正在构造函数中这样做。然后我手动编辑了VSE设计器生成的代码来传递表单本身。但此后,当我尝试使用designview时,VSE会显示一条错误消息。我做错了吗

class canvas : Control
 {

     public canvas(Form1 theForm)
     {

     }
 }
然后在设计器生成的代码中:

this.canvas2 = new panel2.canvas(this);

你可以使用公共财产

public Form1 mainForm { get; set; }
然后可以将其作为参数传入画布对象

<canvas mainForm='<%= this %>'></canvas>

可能,您可以使用控件的
FindForm()
方法来获取放置控件的表单,而不是通过控件的构造函数传递表单

this.canvas2.mainForm = this;