被忽视的 Application
来源:互联网 发布:卫星终端的数据接收 编辑:程序博客网 时间:2024/04/29 21:02
.NET Framework 2.0 大大增强了 Application 的功能,使得编写 WinForm 程序更加容易。只是和 Environment 一样,Application 长期被忽视。
1. 路径
StartupPath: 获取应用程序启动路径(不包含文件名)。
如:D:/System/My Documents/Visual Studio 2005/Projects/Learn/Learn.GUI/bin/Debug
ExecutablePath: 获取包含文件名的完整应用程序路径。
如:D:/System/My Documents/Visual Studio 2005/Projects/Learn/Learn.GUI/bin/Debug/Learn.GUI.EXE
CommonAppDataPath: 获取所有用户共享的应用程序数据路径。
如:C:/Documents and Settings/All Users/Application Data/RainTrail Studio.China/Learn.GUI/1.0.0.0
LocalUserAppDataPath: 获取本地、非漫游用户的应用程序数据路径。
如:C:/Documents and Settings/q.yuhen/Local Settings/Application Data/RainTrail Studio.China/Learn.GUI/1.0.0.0
UserAppDataPath: 获取用户的应用程序数据路径。
如:C:/Documents and Settings/q.yuhen/Application Data/RainTrail Studio.China/Learn.GUI/1.0.0.0
UserAppDataRegistry: 获取用户的应用程序数据注册表项。
如:HKEY_CURRENT_USER/Software/RainTrail Studio.China/Learn.GUI/1.0.0.0
2. 属性
OpenForms: 获取应用程序所有已打开窗体集合。使用这个功能,我们就可以很方便地决定是创建新窗体实例还是激活已有实例了。不过要注意 OpenForms 只存储已打开(或打开后隐藏)的窗体。如果将下面例子中的 x.Show() 注释掉,那么 my 的值就为 null。参考《仅显示一个非模式窗体实例》
UseWaitCursor: 获取或设置是否将等待光标用于应用程序所有打开的窗体。这个属性也非常实用,当应用程序执行一个需要等待的关键应用时,我们就不用为每个打开的窗体设置等待光标了。
3. 方法
AddMessageFilter: 通过添加消息筛选器,我们可以提前拦截一些操作,比如实现键盘钩子之类的。
DoEvents 处理当前在消息队列中的所有 Windows 消息。 这个应用比较多就不多说了。 参考《在WinForm中执行一个“长操作”》。
EnableVisualStyles: 启用应用程序的可视样式。 同样不需要我废话了。 参考《Application.EnableVisualStyles Problem》
Exit: 这个还是你自己试吧,当然建议你看看我以前写贴子《Application.Exit()》。
Restart: 关闭应用程序并立即启动新的实例。 这下好了,写自升级程序就简单多了。参考1.1解决方法《自删除 & 自升级》。
Run: 在当前线程上开始运行标准应用程序消息循环。通过自定义 ApplicationContext 类,我们可以做很多和应用程序启动、终止关联的操作。
SetSuspendState: 挂起系统或使系统休眠,或者请求系统挂起或休眠。 这个可以用来写几个恶作剧程序。呵呵
4. 事件
ApplicationExit: 在应用程序即将关闭时发生。
Idle: 当应用程序完成处理并即将进入空闲状态时发生。
ThreadExit: 在某线程即将关闭时发生。当应用程序的主线程即将关闭时,首先引发该事件,随后是 ApplicationExit 事件。
1. 路径
StartupPath: 获取应用程序启动路径(不包含文件名)。
如:D:/System/My Documents/Visual Studio 2005/Projects/Learn/Learn.GUI/bin/Debug
ExecutablePath: 获取包含文件名的完整应用程序路径。
如:D:/System/My Documents/Visual Studio 2005/Projects/Learn/Learn.GUI/bin/Debug/Learn.GUI.EXE
CommonAppDataPath: 获取所有用户共享的应用程序数据路径。
如:C:/Documents and Settings/All Users/Application Data/RainTrail Studio.China/Learn.GUI/1.0.0.0
LocalUserAppDataPath: 获取本地、非漫游用户的应用程序数据路径。
如:C:/Documents and Settings/q.yuhen/Local Settings/Application Data/RainTrail Studio.China/Learn.GUI/1.0.0.0
UserAppDataPath: 获取用户的应用程序数据路径。
如:C:/Documents and Settings/q.yuhen/Application Data/RainTrail Studio.China/Learn.GUI/1.0.0.0
UserAppDataRegistry: 获取用户的应用程序数据注册表项。
如:HKEY_CURRENT_USER/Software/RainTrail Studio.China/Learn.GUI/1.0.0.0
2. 属性
OpenForms: 获取应用程序所有已打开窗体集合。使用这个功能,我们就可以很方便地决定是创建新窗体实例还是激活已有实例了。不过要注意 OpenForms 只存储已打开(或打开后隐藏)的窗体。如果将下面例子中的 x.Show() 注释掉,那么 my 的值就为 null。参考《仅显示一个非模式窗体实例》
Form x = new Form();
x.Name = "MyForm";
x.Show();
x.Hide();
Form my = Application.OpenForms["MyForm"];
if (my != null)
{
my.Show();
my.Activate();
}
x.Name = "MyForm";
x.Show();
x.Hide();
Form my = Application.OpenForms["MyForm"];
if (my != null)
{
my.Show();
my.Activate();
}
UseWaitCursor: 获取或设置是否将等待光标用于应用程序所有打开的窗体。这个属性也非常实用,当应用程序执行一个需要等待的关键应用时,我们就不用为每个打开的窗体设置等待光标了。
3. 方法
AddMessageFilter: 通过添加消息筛选器,我们可以提前拦截一些操作,比如实现键盘钩子之类的。
DoEvents 处理当前在消息队列中的所有 Windows 消息。 这个应用比较多就不多说了。 参考《在WinForm中执行一个“长操作”》。
EnableVisualStyles: 启用应用程序的可视样式。 同样不需要我废话了。 参考《Application.EnableVisualStyles Problem》
Exit: 这个还是你自己试吧,当然建议你看看我以前写贴子《Application.Exit()》。
Restart: 关闭应用程序并立即启动新的实例。 这下好了,写自升级程序就简单多了。参考1.1解决方法《自删除 & 自升级》。
Run: 在当前线程上开始运行标准应用程序消息循环。通过自定义 ApplicationContext 类,我们可以做很多和应用程序启动、终止关联的操作。
SetSuspendState: 挂起系统或使系统休眠,或者请求系统挂起或休眠。 这个可以用来写几个恶作剧程序。呵呵
4. 事件
ApplicationExit: 在应用程序即将关闭时发生。
Idle: 当应用程序完成处理并即将进入空闲状态时发生。
ThreadExit: 在某线程即将关闭时发生。当应用程序的主线程即将关闭时,首先引发该事件,随后是 ApplicationExit 事件。
[最后修改由 yuhen, 于 2006-08-11 18:32:05]
来至: http://www.rainsts.net/feed.asp?q=comment&id=230
- 被忽视的 Application
- 被忽视的 Application
- 被忽视的大道理
- 被忽视的道理
- 被忽视的互联网
- 被忽视的中医学
- 被忽视的mb_convert_encoding用法
- 被人忽视的intern
- 1384 被忽视的MM
- 被忽视的控件UIPageControl
- 被忽视的安全威胁
- 被忽视的预处理命令
- 容易被忽视的synchronized
- 被忽视的 partition 算法
- 被忽视的另一个vmlinux
- 推荐一本被忽视的书
- C++/CLI:被忽视的集成技术
- 容易被忽视的选房要素
- java产生随机数的几种方式
- Struts1.x中 bean:write format 属性格式化输出日期,数字
- termservice是什么
- 关于Java RMI 中对象的序列化与反序列化
- Format方法总结
- 被忽视的 Application
- C#中using和as的用法【转】
- 编码学习整理(一)——计算机编码
- 儿子的照片
- 电子商务加密标准——名词解释
- 名词解释
- 09-05-17日记
- MIDlet 调用WEB Service的三种方式(详细介绍一种更好用的哦!)
- PPR的使用学习