c#捕获窗体的最大化最小化按钮的事件
2008-12-10 17:15
846 查看
c#捕获窗体的最大化最小化按钮的事件 protected override void OnResize(EventArgs e)
{
if(WindowState == FormWindowState.Maximized)
{
//最大化时所需的操作
MessageBox.Show("max");
}
else if(WindowState == FormWindowState.Minimized)
{
//最小化时所需的操作
MessageBox.Show("min");
}
}
*****但是问题出现了,最大化以后,内部的控件不能随anchar发生变化。。。。。,问题出在哪里呢?
于是又找到了一些代码,如下
虽然Form类没有提供Minimize的事件,但还是可以通过重载Deactive来实现
当Form失去焦点后,测试WindowState取得Form状态,若为Minimized既是最小化事件。
本例为最小化后隐藏窗口:
private void Form1_Deactivate(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
this.Visible = false;
}
还有种方法更加直接,重载WndProc:
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);
}
{
if(WindowState == FormWindowState.Maximized)
{
//最大化时所需的操作
MessageBox.Show("max");
}
else if(WindowState == FormWindowState.Minimized)
{
//最小化时所需的操作
MessageBox.Show("min");
}
}
*****但是问题出现了,最大化以后,内部的控件不能随anchar发生变化。。。。。,问题出在哪里呢?
于是又找到了一些代码,如下
虽然Form类没有提供Minimize的事件,但还是可以通过重载Deactive来实现
当Form失去焦点后,测试WindowState取得Form状态,若为Minimized既是最小化事件。
本例为最小化后隐藏窗口:
private void Form1_Deactivate(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
this.Visible = false;
}
还有种方法更加直接,重载WndProc:
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);
}
相关文章推荐
- c#捕获窗体的最大化最小化按钮的事件
- C# Winform 捕获窗体的最小化和最大化事件、关闭按钮事件 .
- C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法,可通过重写WndProc来实现
- C# Winform 捕获窗体的最小化和最大化事件、关闭按钮事件【整理】
- C# Winform 捕获窗体的最小化和最大化事件、关闭按钮事件
- c#捕获窗体的最大化最小化按钮的事件(转)
- c#捕获窗体的最大化最小化按钮的事件
- C# 捕获窗体最大化和最小化事件
- C# Winform 捕获窗体的最小化和最大化事件、关闭按钮事件
- C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法
- C#窗体的最大化、最小化按钮事件
- [Winfrom] 捕获窗体最大化、最小化和关闭按钮的事件
- C# 捕获窗体最小化、最大化事件
- C# WinForm 最大化、最小化、关闭按钮事件的拦截 .
- 使C# 窗体的关闭按钮、最小化、最大化按钮不可用
- 使C# 窗体的关闭按钮、最小化、最大化按钮不可用
- C#窗体编程不显示最小化、最大化、关闭按钮的方法
- C# 通过消息捕获处理窗体最大化/最小化
- C# 窗体的最大化、最小化、关闭按钮的自定义
- C#窗体皮肤制作(二):创建窗体库项目以及最小化、最大化、关闭按钮的实现