日期:2014-05-19  浏览次数:21003 次

如何限制鼠标双击,窗体Form最大化?
在做Form时,取消了最大化按钮的显示,但在运行时,如果双击窗体的标题,还是会造成窗体最大化。
请教各位大虾,如何限制鼠标双击,或者屏蔽掉鼠标双击也行。

------解决方案--------------------
方法1:捕获系统双击消息,然后屏蔽;
方法2:限制窗口最大化属性
------解决方案--------------------
设置窗体的 frombroderstyle 属性

-----------------------
CSDN 论坛助手
http://china-csdn.cn
------解决方案--------------------
this.MaximizeBox = false;
this.FormBorderStyle = FormBorderStyle.FixedSingle;
------解决方案--------------------
还有一个办法就是把窗体的最大高度和宽度设置为当前大小。
this.MaximizeBox=false;
------解决方案--------------------
maxsize设为当前的size
------解决方案--------------------
protected override void WndProc(ref Message m)
{
if (m.Msg == 0xa3)
{
return;
}
base.WndProc(ref m);
}

------解决方案--------------------
这样就可以了
this.MaximizeBox = false;
this.FormBorderStyle = FormBorderStyle.FixedSingle;
------解决方案--------------------
拦截WM_NCLBUTTONDBLCLK消息

------解决方案--------------------
protected override void WndProc(ref Message m)
{
public const int HTCAPTION = 2 ;
if(m.WParam.ToInt32()==HTCAPTION)//说明鼠标在标题栏
{
if(m.Msg==0xA3)//鼠标双击标题栏时发送的消息
{
return;
}
return;
}
base.WndProc(ref m);
}
------解决方案--------------------
使用如下的代码:
protected override void WndProc(ref Message m)
{
if (m.Msg == 0xa3)
{
return;
}
base.WndProc(ref m);
}
这样是为了避免窗口处理系统的WM_NCLBUTTONDBLCLK消息,
默认情况下窗口接收到这个消息后会使窗口最大化,
所以思路就是当发生这个消息的时候不让窗口处理就是了,也就是说当有这个消息的时候不调用base.WndProc方法,这样窗口就不会收到双击标题的消息,也就不会因双击而最大化了.

但这并不是说窗体不能最大化,通过其它的方法或消息,还是可以让窗体最大化的.
要想让窗体不能最大化,可以把最大化的控件False掉.