我在VSE中用C#创建了一个自定义控件,它出现在左侧列表中。但我想传递对我的主窗体的引用,我现在正在构造函数中这样做。然后我手动编辑,VSE Designer生成的代码传递给表单本身。但是此后当我尝试使用designview时VSE显示错误消息。我做错了吗?
class canvas : Control
{
public canvas(Form1 theForm)
{
}
}
然后在设计器生成的代码中:
this.canvas2 = new panel2.canvas(this);
答案 0 :(得分:2)
你可以使用公共财产。
public Form1 mainForm { get; set; }
然后,您可以将其作为参数传递给画布对象。
<canvas mainForm='<%= this %>'></canvas>
或者来自代码:
this.canvas2.mainForm = this;
答案 1 :(得分:0)
可能不是通过Control的构造函数传递Form,而是使用Control的FindForm()
方法来获取控件放置的形式。