奇怪了,以前做控件的时候都没有这个问题,哎,又堕落了1年,什么都忘了
创建自定义控件 可以继承现有控件,也可以继承userContrl类,但是现在有个问题
很多网上的资料说,啊,直接创建一个自定义控件项目,然后把继承usercontrl改成继承现有的控件比如class Myctl:TextBox
其实这样的做法会造成报错:XX程序集不包含任何UserControl
那么如何解决呢
1:直接创建自定义控件项目,不要管默认的那个继承usercontrl的类,然后在项目中添加一个用户控件即可,这个控件去继承现用控件就行了
用的时候,会出现两个控件 一个是默认的容器控件(就是默认继承usercontrl的控件,一个是继承了原有控件的控件(其实你想用的就是这个))
2:在你的窗体项目中直接添加用户控件即可
两个方法最大的区别:第一种方法会打包成DLL,第二种直接是cs文件..其他的后遗症暂时没发现~
另外注意,继承原有控件的类,必须检查设计文件,去掉不必要的东西
private void InitializeComponent() { this.SuspendLayout(); // // FTextBox // //this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); //this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Name = "FTextBox"; this.Click+=new System.EventHandler(FTextBox_Click); components = new System.ComponentModel.Container(); // this.Load += new System.EventHandler(this.FTextBox_Load); // this.ResumeLayout(false); }
注意,上面这个类是继承自原有控件的~