C#实现WinForm捕获最小化事件的方法

一般来说,虽然Form类没有提供Minimize的事件,但还是可以通过重载Deactive来实现WinForm捕获最小化事件。

实现方法为:当Form失去焦点后,测试WindowState取得Form状态,若为Minimized既是最小化事件。

本例为最小化后隐藏窗口:

还有种方法更加直接,重载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);
}
private void Form1_Deactivate(object sender, EventArgs e)
{
  if (this.WindowState == FormWindowState.Minimized)
 this.Visible = false;
}

希望本文所述实例对大家C#程序设计有所帮助。

除声明外,跑步客文章均为原创,转载请以链接形式标明本文地址
  C#实现WinForm捕获最小化事件的方法

本文地址:  http://www.paobuke.com/develop/c-develop/pbk23595.html

相关内容

C#泛型类创建与使用的方法

c#操作sql server2008 的界面实例代码

C#微信公众号开发 微信事件交互

浅谈C#中ToString()和Convert.ToString()的区别


C#基于WebBrowser获取cookie的实现方法

C#实现将数据导出到word或者Excel中的方法

C#导出Excel的方法

C#验证给定字符串是否为数字的方法

时间: 2024-08-25 10:46:45

C#实现WinForm捕获最小化事件的方法的相关文章

C# 实现WinForm窗口最小化到系统托盘代码,并且判断左右鼠标的事件

1.设置WinForm窗体属性showinTask=false 2.加notifyicon控件notifyIcon1,为控件notifyIcon1的属性Icon添加一个icon图标. 3.添加窗体最小化事件(首先需要添加事件引用): this.SizeChanged += new System.EventHandler(this.Form1_SizeChanged); //上面一行是主窗体InitializeComponent()方法中需要添加的引用 private void Form1_Siz

将winform窗口最小化到任务栏托盘中

1.设置WinForm窗体属性ShowInTaskbar=false this.ShowInTaskbar = false;2.加NotifyIcon控件notifyIcon1,为控件notifyIcon1的属性Icon添加一个icon图标.3.添加窗体最小化事件(首先需要添加事件引用):private void Form1_SizeChanged(object sender, EventArgs e)        {            if (this.WindowState == Fo

layer最大话.最小化.还原回调方法使用

1 <head> 2 <meta charset="UTF-8"> 3 <title>layer最大话.最小化.还原回调方法使用</title> 4 <script src="jquery1.11.3.js"></script> 5 <script src="layer/layer.js"></script> 6 </head> 7 8 &

Winform 拦截最小化、最大化、关闭事件【整理】

1 const int WM_SYSCOMMAND = 0x112; 2 //窗体关闭消息 3 const int SC_CLOSE = 0xf060; 4 //窗体最小化消息 5 const int SC_MINIMIZE = 0xf020; 6 //窗体最大化消息 7 const int SC_MAXIMIZE = 0xf030; 8 //窗体还原消息 9 const int SC_NOMAL = 0xf120; 10 //窗体还原消息 11 const int SC_RESTORE = 6

C# winForm启动最小化到任务栏右侧通知栏并交互操作

一.主要功能:(1).程序启动自动隐藏到任务栏右侧通知栏显示.(与系统托盘同义)(2).双击系统托盘图标显示.隐藏窗口:(3).右击系统托盘图标提供三个菜单选项,“退出”.“隐藏”.“显示”: 二.相关控件:1.建一个WinForm程序—IconForm,将Form属性ShowInTaskbar改为false,这样程序将不会在任务栏中显示.2.将Form属性WindowState选择为 Minimized,以便起来自动最小化隐藏3.在工具栏中的“公共控件”里,拖入NotifyIcon控件—not

WinForm实现最小化窗体时隐藏到系统托盘中

1.首先在工具栏中选择NotifyIcon控件拖入窗体中: 2.设置NotifyIcon控件的相关属性: Icon:在系统托盘中显示的图标: Text:当鼠标移动到系统托盘图标上时显示的文本: ContextMenuStrip:设置系统托盘的右键菜单,这个实现很简单,拖入一个右键菜单的控件,并在下拉列表框中选择就可以了. 3.添加相关代码 /// <summary> /// 窗体SizeChanged事件 /// </summary> /// <param name=&quo

layer最大话.最小化.还原回调方法

layer.open({              type: 1,             title: '在线调试',           content: '这里是内容',            maxmin: true, //开启最大,最小,还原按钮,只有type为1和2时,才能设置              full: function() { //点击最大化后的回调函数                 console.log('这个是点击最大化后的回调函数出发');         

Winform 窗体最小化隐藏在桌面右下角:转

ICO文件要放到 bin\Debug 下 1.给主窗体添加 NotifyIcon 控件 2.窗体加载事件里 private void MainF_Load(object sender, EventArgs e) { this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components); notifyIcon1.Icon = new Icon("JC.ico"); notifyIcon1.Visible = fal

WinForm实现最小化右下角

首先,要在窗体里面加入这么两个控件,左边的是托盘控件,右边的是菜单控件. 然后设置窗体的FormClosing事件: if (e.CloseReason == CloseReason.UserClosing) { e.Cancel = true; this.WindowState = FormWindowState.Minimized; this.Hide(); return; } 然后再设置notifyIcon1的DoubleClick事件: private void notifyIcon1_