-1
我正在做一個基於ToolStripButton控件的CustomControl,我想知道什麼時候鼠標懸停按鈕來繪製它的不同。這裏是我的代碼快速查看:真的很奇怪的ToolStripButton事件問題
private bool m_IsHover = false;
...
protected override void OnMouseEnter(EventArgs e)
{
m_IsHover = true;
Debug.WriteLine("Mouse IN");
base.OnMouseEnter(e);
}
protected override void OnMouseLeave(EventArgs e)
{
m_IsHover = false;
Debug.WriteLine("Mouse OUT");
base.OnMouseLeave(e);
}
...
protected override void OnPaint(PaintEventArgs e)
{
// Define rectangle used to draw
Rectangle borderRec = new Rectangle(0, 0, this.Width - 1, this.Height - 1);
if (m_IsHover)
{
// Draw border
e.Graphics.DrawRectangle(m_BorderPen, borderRec);
...
}
else
{
// Default draw
base.OnPaint(e);
}
}
我的問題是,我在調試面板鼠標和鼠標OUT是正確清楚地看到,所以變量應設置正確,但在OnPaint事件,我在m_IsHover conditionnal永遠不會進入...
我真的不明白是什麼問題,它似乎很容易...
我有一些線索,其實OnPaint事件在鼠標進入時沒有調用,只是在鼠標移出時才調用。但奇怪的是,它似乎是另一個被鼠標拖拽的按鈕,但是哪一個? – Karnalta 2010-08-16 13:30:42