c#窗体程序中button按钮如何画成圆的 c#窗体程序中button按钮如何画成圆的!请大神们说的详细一些! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 第一你可以重绘按钮,第二,你可以不用button,用image,panel,usercontrol等代替button,然后在上面绘制圆形 按钮控件背景设置成透明,背景图片选择一张圆角按钮图片(用PS抠图,底部尖角部分delete成透明,存为png格式即可)。 1:写一个类,继承Button2:重写OnPaint方法3:在OnPaint方法中,把Region赋值成一个圆 新建 一个类,类代码如下: public class ButtonX:Button { protected override void OnPaint(System.Windows.Forms.PaintEventArgs e) { base.OnPaint(e); System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath(); path.AddEllipse(0, 0, this.Width, this.Height); this.Region = new Region(path); } protected override void OnMouseEnter(EventArgs e) { Graphics g = this.CreateGraphics(); g.DrawEllipse(new Pen(Color.Blue), 0, 0, this.Width, this.Height); g.Dispose(); } }然后生成解决方案,生成之后,工具箱里会有如下图:这个组件就是新的Button,你直接拖到窗体上就好了,这个是简单的,效果不满意可以随便画,另外还有控件失去焦点呀,单击事件什么的你自已重绘一下就好了,这个参考一下就可以。 为什么我的已安装模板里没有数据集? 为什么在apache下asp.net 写不入cookies. 求一份VS2005用serialport类发短信的实例!! 如何将程序运算的后float型的数据的科学计数法去掉 二进制文件读入的问题.. 一个C# winform中的API问题。。 初学C#,请各位大大给点建议 有一个字符串"3>2&5>0",怎么判断字符串内3>2&5>0是true 把一个帖子发在 c++专区,结果被整的很惨,请大家为我报仇!! 急招杭州.net高手加盟 winform 动态传值 Visual Studio 2010中的中文复制到richtextbox乱码
第二,你可以不用button,用image,panel,usercontrol等代替button,然后在上面绘制圆形
2:重写OnPaint方法
3:在OnPaint方法中,把Region赋值成一个圆
public class ButtonX:Button
{
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{ base.OnPaint(e);
System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath();
path.AddEllipse(0, 0, this.Width, this.Height);
this.Region = new Region(path);
} protected override void OnMouseEnter(EventArgs e)
{
Graphics g = this.CreateGraphics();
g.DrawEllipse(new Pen(Color.Blue), 0, 0, this.Width, this.Height);
g.Dispose();
}
}
然后生成解决方案,生成之后,工具箱里会有如下图:这个组件就是新的Button,你直接拖到窗体上就好了,
这个是简单的,效果不满意可以随便画,另外还有控件失去焦点呀,单击事件什么的你自已重绘一下就好了,这个参考一下就可以。