现在的位置: 首页 > 综合 > 正文

.net圆形按钮的实现

2014年02月15日 ⁄ 综合 ⁄ 共 2032字 ⁄ 字号 评论关闭

一.设计时效果

二.运行时效果

三.简单的实现思路

  因为在最近的项目中要用到类似效果的控件,所以就索性做了一个.原理很简单,实现的代码不超过250行.继承control类,然后在onpaint方法中来绘制按钮效果,指定Region,同时,要在Onmousedown,Onmouseenter,Onmouseup,Onmouseleave,OnResize,OnLostFocus等方法中做一些相应的处理.

四.部分源代码 

 



 protected override void OnLostFocus(EventArgs e)
        
{
            
base.OnLostFocus(e);
            
this._isEnter = false;
            
this.Invalidate();
        }

        
protected override void OnMouseDown(MouseEventArgs e)
        
{
            
base.OnMouseDown(e);
            
this.Capture = true;
            _isEnter 
= true;
            
this._mouseStyle = MouseStyle.MouseDown;
            
this.Invalidate();
            
if (e.Button == MouseButtons.Left)
            
{
                
if (this.ButtonClick != null)
                    
this.ButtonClick();
            }

        }

        
protected override void OnMouseHover(EventArgs e)

          y=''none''; document.getElementById(''_657_787_Open_Text'').style.display=''none''; document.getElementById(''_657_787_Closed_Image'').style.display=''inline''; document.getElementById(''_657_787_Closed_Text'').style.display=''inline'';" align="top" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" />        {
            
base.OnMouseHover(e);
            
this._mouseStyle = MouseStyle.MouseHover;
            
this.Invalidate(); 
        }

        
protected override void OnMouseUp(MouseEventArgs e)
        
{
            
base.OnMouseUp(e);
            
this._mouseStyle = MouseStyle.MouseHover;
            
this.Invalidate(); 
        }

        
protected override void OnMouseEnter(EventArgs e)
        
{
            
base.OnMouseEnter(e);
            
this._mouseStyle = MouseStyle.MouseHover;
            
this.Invalidate(); 
        }

        protected override void OnMouseLeave(EventArgs e)
        
{
            
base.OnMouseLeave(e);
            
this._mouseStyle = MouseStyle.None;
            
this.Invalidate(); 
        }

        
protected override void OnResize(EventArgs e)
        
{
            
base.OnResize(e);
            
this.Height = this.Width;
        }

 

抱歉!评论已关闭.