我创建了一个新的WinForm
。
在那个WinForm中我放了一个Panel
。 Dock = Fill。
运行项目。
在表单标题上进行DoubleClick(最大化)
在面板上获取mouseUp:
功能:WindowsApplication1.Form1.Panel1_MouseUp(Object, System.Windows.Forms.MouseEventArgs),线程:0x2068主线程
是错误还是功能? ))
据我所知,当我双击某个部分的面板时,鼠标下面会出现片刻,但是我在面板上没有任何鼠标,但是?!
我的问题: 我在面板中有一些可以选择的对象。 当我在面板上单击(MouseUp)(在“空”空间,没有objets)时,通常,我取消选择所有对象。
但是在最大化的情况下,我应该保持对象选择不变!
如何“过滤”MouseUp的最大化情况?
答案 0 :(得分:2)
即使你是对的,这种行为非常烦人无用, 这就是逻辑上应该如何。
我建议尽可能避免使用MouseDown / MouseUp。 尽可能使用MouseClick / DblClick。
此致
编辑:
我有两个想法:
在没有MouseDown的情况下跟踪MouseUp。
private bool bMouseDownState = false;
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
bMouseDownState = true;
}
private void Form1_MouseUp(object sender, MouseEventArgs e)
{
if (!bMouseDownState)
return;
bMouseDownState = false;
}
注意最大化事件并忽略MouseUp。
但是当窗口几乎最大化时(这不会导致鼠标升起!)这个很棘手!)
最后忽略以下鼠标(取消选择对象)。
* 最后一个 - 为什么要发明轮子? * 使用已制作的绘图画布(visio?)