被忽视的 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。参考《仅显示一个非模式窗体实例》
Form x = new Form();
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
原创粉丝点击