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实现捕获窗体最小化、最大化、关闭按钮事件的方法
本文实例讲述了C# Winform实现捕获窗体最小化.最大化.关闭按钮事件的方法,主要是通过重写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
-
.Net WInform开发笔记(五)关于事件Event
我前面几篇博客中提到过.net中的事件与Windows事件的区别,本文讨论的是前者,也就是我们代码中经常用到的Event.Event很常见,Button控件的Click.KeyPress等等,PictureBox控件的Paint等等都属于本文讨论范畴,本文会例举出有关"事件编程"的几种方法,还会提及由"事件编程"引起的MemoryLeak(跟"内存泄露"差不多),以及由"事件编程"引起的一些异常. 引子: .net中事件最常用
-
C#中winform实现自动触发鼠标、键盘事件的方法
程序触发鼠标.键盘事件是C#程序设计中比较常见的功能,本文实例展示了C#中winform实现自动触发鼠标.键盘事件的方法,有不错的实用价值.具体如下: 要想在C#程序中触发鼠标.键盘事件就必须要调用windows函数. 一.鼠标事件的触发 1.引用windows函数mouse_event /// <summary> /// 鼠标事件 /// </summary> /// <param name="flags">事件类型</param> /
-
WinForm判断关闭事件来源于用户点击右上角“关闭”按钮的方法
本文实例讲述了WinForm判断关闭事件来源于用户点击右上角"关闭"按钮的方法.分享给大家供大家参考.具体如下: protected override void WndProc(ref Message msg) { const int WM_SYSCOMMAND = 0x0112; const int SC_CLOSE = 0xF060; if (msg.Msg == WM_SYSCOMMAND && ((int)msg.WParam == SC_CLOSE)) { /
-
winform拦截关闭按钮触发的事件示例
用户关闭软件时,软件一般会给"是否确认关闭"的提示.通常,我们把它写在FormClosing 事件中,如果确定关闭,就关闭:否则把FormClosingEventArgs 的 Cancel 属性设置为 true,就取消了该窗体的关闭. 如果该窗体是主窗体,我们想在该窗体关闭时关闭整个应用程序,会遇到至少两种情况: (1)该窗体同时是启动窗体,即它是应用程序中所有窗体的父类,则整个应用程序会被关闭. (2)如果该窗体不是启动窗体,比如我们做了一个欢迎窗体,则应用程序中所有窗体的父类就是这
-
winform使用委托和事件来完成两个窗体之间通信的实例
单击按钮 复制代码 代码如下: /// <summary> /// Form1 /// </summary> /// <param name="message"></param> public delegate void ClickDelegateHander(string message); //声明一个委托 public partial class Form1 : Form { pub
-
WinForm实现移除控件某个事件的方法
本文实例讲述了WinForm实现移除控件某个事件的方法,供大家参考借鉴一下.具体功能代码如下: 主要功能部分代码如下: /// <summary> /// 移除控件某个事件 /// </summary> /// <param name="control">控件</param> /// <param name="eventName">需要移除的控件名称eg:EventClick</param> p
-
解读在C#中winform程序响应键盘事件的详解
在winform程序中给form添加了keyup事件,但是程序却不响应键盘事件,解决办法是重写Form基类的ProcessCmdKey(ref Message msg, Keys keyData)方法. 复制代码 代码如下: protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (keyData == Keys.F4) {
-
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 =
-
C# WinForm窗口最小化到系统托盘
1.设置WinForm窗体属性showinTask=false 2.加notifyicon控件notifyIcon1,为控件notifyIcon1的属性Icon添加一个icon图标. 3.添加窗体最小化事件(首先需要添加事件引用): 复制代码 代码如下: this.SizeChanged += new System.EventHandler(this.Form1_SizeChanged); //上面一行是主窗体InitializeComponent()方法中需要添加的引用 private voi
-
WinForm实现最小化到系统托盘方法实例详解
本文实例讲述了WinForm实现最小化到系统托盘方法.分享给大家供大家参考.具体分析如下: 有个叫NotifyIcon的控件 1.建个WinForm项目,其它操作略过. 2.拉个NotifyIcon控件,将属性Visable设置成False,在Text属性上随便填些文件. 3.实现Form的SizeChanged事件,代码如下: if(this.WindowState == FormWindowState.Minimized) //判断是否最小化 { this.ShowInTaskbar = f
-
通过yum升级CentOS/RHEL最小化安装的方法
1.如果你有安装CentOS / RHEL最小服务器安装,您可能有很多麻烦没有安装包 2.有一种方法来安装所有的包,需要一个基本的服务器,使用yum groupinstall命令 3.从最小的安装基本升级你的服务器 # yum groupinstall "Base" 4.升级你的系统Web服务器 # yum groupinstall "Web Server" 5.升级你的系统为MySQL数据库服务器 # yum groupinstall "MySQL Da
-
c# 重载WndProc,实现重写“最小化”的实现方法
code #1 复制代码 代码如下: private void Form1_SizeChanged(object sender, EventArgs e) //最小化隐藏窗体 { if (this.WindowState == FormWindowState.Minimized)//窗体状态为最小化 { StopRectTimer.Enabled = false; this.Visible = false; this.notifyIcon1.Visible = true; //显示系统托盘图标
-
C# WinForm捕获全局变量异常 SamWang解决方法
许多小公司的项目都缺少异常处理模块,我们也是.经常会出现这种情况,用户在UI界面操作,就直接跳出堆栈调用的异常信息对话框,老板看到那叫一个火啊!你们的代码怎么天天出现乱码.呵呵!这就是没有异常捕获处理导致的,现在许多人写代码都没意识处理异常,只要实现功能就好,我的许多组员也是如此. 项目刚接手,所以打算做一个异常全局捕获,统一处理的模式,采用具体详细信息的对话框提醒与日志文件保存方式.以下是根据网上找的C#winform全局异常捕获做了点修改.(等项目异常处理全部完成后,将心得体会做个记录,此处
-
wxpython 最小化到托盘与欢迎图片的实现方法
一直在学习系统托盘的实现,于是自己写了一个简单的系统托盘实例,右键包括演示.最大化.最小化.退出和关于.在python2.6下测试通过. 注意,本节分享的python实例代码,这里是托盘上的图标弹出菜单是覆盖了CreatePopupMenu. 也可以绑定2个方法,一个wx.EVT_TASKBAR_RIGHT_DOWN,方法里面生成menu,然后再来一个wx.EVT_MENU,定义要处理的事件函数. 还有一个就是Wx窗体上的最小化按钮,触发的事件是 wx.EVT_ICONIZE,而根本就没有定义什
-
C#实现WinForm禁止最大化、最小化、双击标题栏、双击图标等操作的方法
本文实例讲述了C#实现WinForm禁止最大化.最小化.双击标题栏.双击图标等操作的方法.分享给大家供大家参考.具体实现方法如下: protected override void WndProc(ref Message m) { if (m.Msg==0x112) { switch ((int) m.WParam) { //禁止双击标题栏关闭窗体 case 0xF063: case 0xF093: m.WParam = IntPtr.Zero; break; //禁止拖拽标题栏还原窗体 case
-
可关闭与最小化的右下角浮动广告代码
很多朋友喜欢带有最小化功能的代码. 可最小化和关闭的右下角浮动窗口 #msg_win{position:absolute;right:0px;display:none;overflow:hidden;z-index:99;border:1px solid #c00;background:#F9EFFC;width:240px;font-size:12px;margin:0px;} #msg_win .icos{position:absolute;top:2px;*top:0px;right:2p
随机推荐
- powershell玩转sqlite数据库详细介绍
- Javascript面向对象扩展库代码分享
- VBS 提取狗狗影视中的ED2K连接的实现代码
- java字符串的大写字母右移实现方法
- IOS 多线程GCD详解
- php+mysql+jquery实现日历签到功能
- PHP+Ajax 检测网络是否正常实例详解
- web标准知识——丰富段落里的标签
- Add Formatted Text to a Word Document
- 使用jQuery轻松实现Ajax的实例代码
- mysql建库时提示Specified key was too long max key length is 1000 bytes的问题的解决方法
- 扩展Bootstrap Tooltip插件使其可交互的方法
- PHP对象Object的概念 介绍
- C#非矩形窗体实现方法
- php递归删除目录与文件的方法
- 一个酷炫的Android图表制作框架
- select获取下拉框的值 下拉框默认选中方法
- 利用anaconda作为python的依赖库管理方法
- android实现条目倒计时功能
- Struts2.5版本struts.xml与web.xml配置的更改方法