判断鼠标的位置【利用这种方法可以写圆形按钮】

鼠标按下前:   鼠标按下后:


    public partial class JudgmentFrm : Form
    {
        private GraphicsPath m_Gpath;
        private Rectangle m_Rect;
        private bool m_Flag;
        private bool m_IsDown;

        public JudgmentFrm()
        {
            InitializeComponent();
        }

        private void JudgmentFrm_Paint(object sender, PaintEventArgs e)
        {
            Pen pen = new Pen(Color.Green);
            e.Graphics.DrawEllipse(pen, m_Rect);

            //使用普通画刷
            //SolidBrush brush = new SolidBrush(Color.Red); 

            // 使用渐变画刷
            if (m_Flag && m_IsDown)
            {
                LinearGradientBrush brush = new LinearGradientBrush(m_Rect, Color.Yellow, Color.Red, LinearGradientMode.Horizontal);
                e.Graphics.FillEllipse(brush, m_Rect);
            }
            else
            {
                LinearGradientBrush brush = new LinearGradientBrush(m_Rect, Color.Red, Color.Yellow, LinearGradientMode.Horizontal);
                e.Graphics.FillEllipse(brush, m_Rect);
            }
        }

        private void JudgmentFrm_Load(object sender, EventArgs e)
        {
            m_Gpath = new GraphicsPath();
            m_Rect = new Rectangle(50, 50, 100, 100);
            m_Gpath.AddEllipse(m_Rect);
        }

        private void JudgmentFrm_MouseDown(object sender, MouseEventArgs e)
        {
            m_Flag = m_Gpath.IsVisible(e.X, e.Y);
            m_IsDown = true;
            if (m_Flag)
            {
                Invalidate();
            }
        }

        private void JudgmentFrm_MouseUp(object sender, MouseEventArgs e)
        {
            m_Flag = m_Gpath.IsVisible(e.X, e.Y);
            m_IsDown = false;
            if (m_Flag)
            {
                Invalidate();
            }
        }
    }

有兴趣的朋友可以试一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值