创建任何自定义形状的控件 步骤如下: ●创建一个GraphicsPath类的实例对象。 ●指定好该对象的各项细节(如大小、形状等等)。 ●将控件的Region属性设置为上面建立的GraphicsPath类的实例对象。 创建一个像文本的按钮控件: 1.拖放一个按钮控件到窗体上。 2.在属性对话框中进行如下设置: ●将Name属性设置为CustomButton。 ●将BackColor属性设置为一个和窗体背景颜色不同的颜色值。 ●将其Text属性设置为空字符串。 3.添加窗体的Paint事件的事件处理函数。 4.添加以下代码,用GraphicsPath类的实例对象来画控件。下面的代码以一串字符串的形式画该按钮控件,同时,程序还设置了字符串的字体、大小、风格等属性。字符串被赋给GraphicsPath类的实例对象。然后,该实例对象就被设置为按钮控件的Region属性。这样一个自定义形状的控件就完成了。 private void CustomButton_Paint(object sender, System.Windows.Forms.PaintEventArgs e) { //初始化一个GraphicsPath类的对象 System.Drawing.Drawing2D.GraphicsPath myGraphicsPath = new System.Drawing.Drawing2D.GraphicsPath(); //确定一个字符串,该字符串就是控件的形状 string stringText = "Click Me!"; //确定字符串的字体 FontFamily family = new FontFamily("Arial"); //确定字符串的风格 int fontStyle = (int)FontStyle.Bold; //确定字符串的高度 int emSize = 35; //确定字符串的起始位置,它是从控件开始计算而非窗体 PointF origin = new PointF(0, 0); //一个StringFormat对象来确定字符串的字间距以及对齐方式 StringFormat format = new StringFormat(StringFormat.GenericDefault); //用AddString方法创建字符串 myGraphicsPath.AddString(stringText, family, fontStyle, emSize, origin, format); //将控件的Region属性设置为上面创建的GraphicsPath对象 CustomButton.Region = new Region(myGraphicsPath); } 5. 创建按钮的Click事件的事件处理函数。添加该处理函数来改变控件的背景颜色,从而证实控件原来的那些功能没有被削减。 private void CustomButton_Click(object sender, System.EventArgs e) { CustomButton.BackColor = Color.BlanchedAlmond; } 6.保存工程并运行。