标题:botton按钮怎样设置自已要的形状
只看楼主
ak110240
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-9-19
结帖率:100%
已结贴  问题点数:20 回复次数:11 
botton按钮怎样设置自已要的形状
botton按钮怎样设置自已要的形状  
paint事件好像不太好用,达不到想要的效果!
求各位大虾给给解!
搜索更多相关主题的帖子: 效果 
2011-04-13 23:25
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
得分:2 
这个没有想过,可以用它的属性试试!

   唯实惟新 至诚致志
2011-04-14 06:24
lwsfyts
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:39
专家分:132
注 册:2011-4-3
得分:2 
自定义控件 上网上查下
2011-04-14 07:00
athenalux
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河北石家庄
等 级:小飞侠
威 望:8
帖 子:975
专家分:2514
注 册:2008-11-26
得分:6 
使用Region属性。
先创建GraphicsPath对像,在其中实现一个形状,然后应用于控件的region属性.
例如创建圆形按钮:
private void roundButton_Paint(object sender, PaintEventArgs e)
    {
        System.Drawing.Drawing2D.GraphicsPath buttonPath =  new System.Drawing.Drawing2D.GraphicsPath();
        System.Drawing.Rectangle newRectangle = roundButton.ClientRectangle;
        newRectangle.Inflate(-10, -10);
         e.Graphics.DrawEllipse(System.Drawing.Pens.Black, newRectangle);
        newRectangle.Inflate( 1,  1);
        buttonPath.AddEllipse(newRectangle);.
        roundButton.Region = new System.Drawing.Region(buttonPath);
    }

QQ:81704464
2011-04-14 07:42
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
得分:2 
回复 4楼 athenalux
不懂!

   唯实惟新 至诚致志
2011-04-14 08:03
yehuanfeng
Rank: 4
等 级:业余侠客
帖 子:75
专家分:201
注 册:2010-8-3
得分:2 
四楼再讲的清楚详细一点吧
2011-04-14 20:17
cqhzaq
Rank: 1
来 自:苏州
等 级:新手上路
帖 子:1
专家分:2
注 册:2011-4-16
得分:2 
没想过这个问题

喃们都是一群土鳖
2011-04-16 10:28
yangdehui
Rank: 1
来 自:湘、江永
等 级:新手上路
帖 子:17
专家分:7
注 册:2011-4-14
得分:2 
你一定要用button控件嘛,就试下用pictureBox1控件,然后再把你想要的型状用图片放在里面,就是你想要的形状了

[ 本帖最后由 yangdehui 于 2011-4-16 11:22 编辑 ]
2011-04-16 11:21
OneHunter
Rank: 2
等 级:论坛游民
帖 子:25
专家分:26
注 册:2010-10-28
得分:2 
回复 8楼 yangdehui
如果用picture 那个控件的话,没办法,点击它并达到预想的 目的了额,   确实想让4楼能解释的更清楚点,我也很好奇

我还好~!
2011-04-16 14:04
athenalux
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河北石家庄
等 级:小飞侠
威 望:8
帖 子:975
专家分:2514
注 册:2008-11-26
得分:0 
private void roundButton_Paint(object sender, PaintEventArgs e) //按钮的paint事件
    {
        System.Drawing.Drawing2D.GraphicsPath buttonPath =  new System.Drawing.Drawing2D.GraphicsPath();//GraphicsPath类表示一个形状,用过photoshop的人可能更好理解一些,好像里面的路径。
        System.Drawing.Rectangle newRectangle = roundButton.ClientRectangle;//返回按钮大小的矩形
        e.Graphics.DrawEllipse(System.Drawing.Pens.Black, newRectangle);//画一个圆。
        buttonPath.AddEllipse(newRectangle);//在形状上加这个圆,也可以加别的形状,如一个圆角的矩形,由于GraphicsPath支持相交,相合,理论上甚至可能支持一个空心圆按钮,但我没试过,呵呵。
        roundButton.Region = new System.Drawing.Region(buttonPath);//应用于按钮。
    }

QQ:81704464
2011-04-17 08:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-336589-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047312 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved