我有一个自定义类(CustomTabControl),派生自System.Windows.Forms.TabControl,我想在设计时修改它。
在创建CustomTabControl类型的对象时,我还需要传递对另一个控件的引用。
我是怎么做到的:
我在设计时创建一个普通的TabControl,然后将引用的类型和对象修改为CustomTabControl。这是有效的,直到我有必要在CustomTabControl的构造函数中传递引用(到窗体中的另一个控件)。
似乎我无法在设计级别将参数传递给构造函数。
最初我有:
private System.Windows.Forms.TabControl tabControl1;
tabControl1 = new System.Windows.Forms.TabControl();
/*Then I change manually the type of the reference
and of the object and this works:*/
private CustomTabControl tabControl1;
tabControl1 = CustomTabControl();
/*But If I want to pass a reference to another form's control,
visual studio continue to removes me the creation of the object:*/
private CustomTabControl tabControl1;
tabControl1 = CustomTabControl(this.anotherFormsControl);
/*after a while the creation is removed,
but the previous modifications of the tabControl1 still remain on the designer.cs,
and this gives me of course an error:
"no variable tabControl1 has been declared".
*/
答案 0 :(得分:1)
如果没有对控件进行适当的设计器类修饰,Windows窗体不支持将默认构造函数添加到其他控件的控件。 要创建思想缓动器,请使用参数删除构造函数并声明一个属性以设置控件:this.anotherFormsControl to tab。