winform怎么制作圆形按钮?

达不溜来多多 2011-11-01 11:32:38
有需求,要圆形按钮
...全文
562 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
淡默 2011-11-01
  • 打赏
  • 举报
回复
自定义控件,用png格式的图片为bgimage,控件背景色透明
pitsou7 2011-11-01
  • 打赏
  • 举报
回复
关注此帖.
达不溜来多多 2011-11-01
  • 打赏
  • 举报
回复
自己怎么做控件,放picturebox的话那几个角还是有的
mabaolin 2011-11-01
  • 打赏
  • 举报
回复
自己做控件
mabaolin 2011-11-01
  • 打赏
  • 举报
回复
粗略 picturebox放图片。
卧_槽 2011-11-01
  • 打赏
  • 举报
回复
看我的博客,有imagebutton
tigercao101 2011-11-01
  • 打赏
  • 举报
回复

protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
if (m.Msg == 0xf || m.Msg == 0x133)
{
IntPtr hDC = GetWindowDC(m.HWnd);
if (hDC.ToInt32() == 0)
{
return;
}
//边框Width为1个像素
System.Drawing.Pen pen = new Pen(this._BorderColor, 1); ;
if (this._HotTrack)
{
if (this._IsMouseOver)
{
pen.Color = this._BorderColor;
}
else
{
pen.Color = Color.FromArgb(199, 219, 229);
}
}
//绘制边框
System.Drawing.Graphics g = Graphics.FromHdc(hDC);
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
g.DrawRectangle(pen, 0, 0, this.Width - 1, this.Height - 1);
pen.Dispose();
//返回结果
m.Result = IntPtr.Zero;
//释放
ReleaseDC(m.HWnd, hDC);
}
}

上面是对边框进行了绘制,同理背景也要画成圆的。如果你要圆的就用g.DrawEllipse(pen,x,y,r,r)想办法吧。没直接画圆的就不贴代码了。
绿领巾童鞋 2011-11-01
  • 打赏
  • 举报
回复
放图片
达不溜来多多 2011-11-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 pengcwl 的回复:]
重写OnPaint

然后加图片
[/Quote]
怎么重写啊?能详细点吗
达不溜来多多 2011-11-01
  • 打赏
  • 举报
回复
如果用picturebox里面放个圆形图片,虽然四个角看不到了,单击四个角还是会触发单击事件。这样是不是不太真实了?
tigercao101 2011-11-01
  • 打赏
  • 举报
回复
最好的方式是画,画圆角,画边框,等等。
jackfans 2011-11-01
  • 打赏
  • 举报
回复
当然是图片啊!!
二号匪 2011-11-01
  • 打赏
  • 举报
回复
重写OnPaint

然后加图片
淡默 2011-11-01
  • 打赏
  • 举报
回复
6楼说的对、排列的时候,负责美工的会替你考虑到这个问题的
mabaolin 2011-11-01
  • 打赏
  • 举报
回复
有几个角没关系的,实际用的时候感觉不到。不信你试试。

111,085

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧