=波波日志 > Asp.Net/C#/WCF > c#捕获窗体的最大化最小化按钮事件=
[转]c#捕获窗体的最大化最小化按钮事件
+展开
-C#
protected override void OnResize(EventArgs e)
{
if(WindowState == FormWindowState.Maximized)
{
//最大化时所需的操作
MessageBox.Show("max");
}
else if(WindowState == FormWindowState.Minimized)
{
//最小化时所需的操作
MessageBox.Show("min");
}
}
{
if(WindowState == FormWindowState.Maximized)
{
//最大化时所需的操作
MessageBox.Show("max");
}
else if(WindowState == FormWindowState.Minimized)
{
//最小化时所需的操作
MessageBox.Show("min");
}
}
*****但是问题出现了,最大化以后,内部的控件不能随anchar发生变化。。。。。,问题出在哪里呢?
于是又找到了一些代码,如下
虽然Form类没有提供Minimize的事件,但还是可以通过重载Deactive来实现
当Form失去焦点后,测试WindowState取得Form状态,若为Minimized既是最小化事件。
本例为最小化后隐藏窗口:
+展开
-C#
private void Form1_Deactivate(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
this.Visible = false;
}
{
if (this.WindowState == FormWindowState.Minimized)
this.Visible = false;
}
还有种方法更加直接,重载WndProc:
+展开
-C#
const int WM_SYSCOMMAND = 0x112;
const int SC_CLOSE = 0xF060;
const int SC_MINIMIZE = 0xF020;
const int SC_MAXIMIZE = 0xF030;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_SYSCOMMAND)
{
if (m.WParam.ToInt32() == SC_MINIMIZE)
{
this.Visible = false;
return;
}
}
base.WndProc(ref m);
}
const int SC_CLOSE = 0xF060;
const int SC_MINIMIZE = 0xF020;
const int SC_MAXIMIZE = 0xF030;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_SYSCOMMAND)
{
if (m.WParam.ToInt32() == SC_MINIMIZE)
{
this.Visible = false;
return;
}
}
base.WndProc(ref m);
}
**具体原因不知道,最后重载WndProc取得成功,但是上面的代码为什么就不行呢?我会继续跟踪。以后会不断地补充
来源:http://www.cnblogs.com/kingdi/archive/2006/09/04/494740.html
类别:Asp.Net/C#/WCF 作者:转载 日期:2011-10-18 【评论:1】
相关文章
日期:2011-10-19 20:59:13 IP:114.237.*.*
谢谢受用了管理员回复(2011-10-20 8:49:40)
不客气~
发表留言
热门博文
- IE里Cookie跨域不能读取
- web服务因URL意外地以/**结束,请求格式无法识别
- 去掉隐藏asp.net编译出错aspxerrorpath错误参数
- 解决asp.net验证视图状态 MAC 失败
- 找不到System.Web.Script.Services.ScriptService
- 在aspx,ashx页面挂起线程执行
最新博文
- WCF授权-通过扩展自行实现服务授权
- WCF授权-ASP.NET Roles授权[下篇]
- WCF授权-ASP.NET Roles授权[上篇]
- WCF授权-模拟在WCF中的应用
- WCF授权-模拟(Impersonation)与委托(Delegation)
- WCF授权-基于Windows用户组授权[下篇]
随机博文
- 在 IIS 6 ASP.Net 选项找不到的Framework3.5的脚本映射
- sys未定义解决办法总结
- C#特性Attribute介绍
- 使用新浪天气预报接口获取天气预报信息
- 关于权限设计的探讨
- asp.net控制系统服务
广告商赞助

