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

时间:2010-12-02 15:41:36

标签: c# constructor visual-studio-express

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

class canvas : Control
 {

     public canvas(Form1 theForm)
     {

     }
 }

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

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

2 个答案:

答案 0 :(得分:2)

你可以使用公共财产。

public Form1 mainForm { get; set; }

然后,您可以将其作为参数传递给画布对象。

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

或者来自代码:

this.canvas2.mainForm = this;

答案 1 :(得分:0)

可能不是通过Control的构造函数传递Form,而是使用Control的FindForm()方法来获取控件放置的形式。