因为现在需要这个功能,所以百度,查到了不少资料,然后对这个产生了疑问
http://blog.csdn.net/zgke/article/details/3502920
这篇的源代码我测试效果非常好,但是我没能找到矩形框消失的原理——就是鼠标松开后矩形框为什么会消失?
主要应该是这个函数没看太懂
private void MyControl_MouseUp(object sender, MouseEventArgs e)
{
m_Control.Capture = false;
Cursor.Clip = Rectangle.Empty;
m_MouseIsDown = false;
DrawRectangle();
if (m_MouseRect.X == 0 || m_MouseRect.Y == 0 || m_MouseRect.Width == 0 || m_MouseRect.Height == 0)
{
//如果区域没0 就不执行委托
}
else
{
if (SetRectangel != null) SetRectangel(m_Control, m_MouseRect);
}
m_MouseRect = Rectangle.Empty;
}
然后矩形框消失貌似还和SetRectangel有关,有点头晕了。
我需要的效果是下一次点选矩形后再消失,所以想知道鼠标松开后矩形消失的原理,谢谢!
------解决思路----------------------
m_MouseRect = Rectangle.Empty;
这句导致框没了
------解决思路----------------------
难道要下载这个源代码去研究?
------解决思路----------------------
http://blog.csdn.net/assky124/article/details/7998167
------解决思路----------------------
m_MouseIsDown = false; 这是通知不要再画矩形了。
m_MouseRect = Rectangle.Empty; 这是矩形的范围 被清0了
------解决思路----------------------
DrawReversibleFrame 方法就是画第二遍时消失