1,我遇到的问题是再写控件库的扩展类时,没有加public关键字,如
public class MyListView: System.Windows.Forms.ListView
{
。。。。
}
如果去掉 public 也可以生成DLL,但当你把它添加到用户控件时就会提示:在e:/mylistview/bin/myListView.dll中没有可放置在工具箱上的组件
2,控件需要有自己的空的构造函数,即使如果存在带参数的构造函数也应存在空的构造函数
View Code
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ComponentModel; using System.Windows.Forms; using System.Drawing; namespace CustomControlSample { public class FirstControl : Control { public FirstControl() { } private ContentAlignment alignmentValue = ContentAlignment.MiddleLeft; [ Category("Alignment"), Description("Specifies the alignment of text.") ] public ContentAlignment TextAlignment { get { return alignmentValue; } set { alignmentValue = value; Invalidate(); } } protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); StringFormat style = new StringFormat(); style.Alignment = StringAlignment.Near; switch (alignmentValue) { case ContentAlignment.MiddleLeft: style.Alignment = StringAlignment.Near; break; case ContentAlignment.MiddleRight: style.Alignment = StringAlignment.Far; break; case ContentAlignment.MiddleCenter: style.Alignment = StringAlignment.Center; break; } e.Graphics.DrawString( Text, Font, new SolidBrush(ForeColor), ClientRectangle, style); } } }