您的位置:首页 > 编程语言 > C#

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

2013-08-23 19:57 351 查看
鼠标按下前: 

  鼠标按下后:


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();
}
}
}

有兴趣的朋友可以试一下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C# Button Position
相关文章推荐