System.Diagnostics.Process

属性

public bool EnableRaisingEvents { get; set; }//获取或设置在进程终止时是否应激发 Exited 事件。

事件

public event EventHandler Exited //在进程退出时发生。进程退出的时候,一般需要把Process对象释放掉[比如一个Windows应用程序里面另外打开其他的exe,其他exe关闭后的处理]

System.AppDomain

属性

public static AppDomain CurrentDomain { get; } //获取当前 Thread 的当前应用程序域。

事件

public event UnhandledExceptionEventHandler UnhandledException //当某个异常未被捕获时出现。

System.Windows.Forms.Application

详细的信息还是去msdn上查看,特别是要看备注

属性

public static string CommonAppDataPath { get; } 可以把程序的日志写在此路径下,即便是用户切换了Windows用户,还是可以看到程序的以前的日志
//获取所有用户共享的应用程序数据的路径。

public static string StartupPath { get; } //获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。

方法

public static void Exit() //通知所有消息泵必须终止,并且在处理了消息以后关闭所有应用程序窗口。
public static void EnableVisualStyles() //启用应用程序的可视样式。 新建一个windows窗体应用程序的时候会调用

public static void SetCompatibleTextRenderingDefault(bool defaultValue) 新建windows窗体应用程序的时候会调用,传递的参数是false
//将某些控件上定义的 UseCompatibleTextRendering 属性设置为应用程序范围内的默认值。
defaultValue 用于新控件的默认值。
如果为 true,则支持 UseCompatibleTextRendering 的新控件使用基于 GDI+ 的 Graphics 类进行文本呈现;
如果为 false,则新控件使用基于 GDI 的 TextRenderer 类。

public static void Run(Form mainForm) 新建windows窗体应用程序的时候会调用,传递的参数是新建的一个Form主窗体
//在当前线程上开始运行标准应用程序消息循环,并使指定窗体可见。

public static void DoEvents() //处理当前在消息队列中的所有 Windows 消息。

public static void Restart() The most common reason for calling Restart is to start a new version of the application that you have downloaded through ClickOnce using the Update or UpdateAsync method.(还是英文准确,机器翻译的中文简直是惨不忍睹)
//关闭应用程序并立即启动一个新实例。 ClickOnce部署

事件

public static event ThreadExceptionEventHandler ThreadException //在发生未捕获线程异常时发生。 未捕获的异常,通过这个事件处理来打印日志

总结:

一般来说
System.AppDomain的CurrentDomain的UnhandledException事件是需要注册的
System.Windows.Forms.Application的ThreadException事件也是需要注册的
通过上面两个事件来捕获未知的异常

最后吐槽下,博客园的markdown编辑器,不支持两个空格和enter键换行吗?

Windows窗体应用程序常用的几个类的属性、方法以及事件的更多相关文章

  1. Windows窗体应用程序(非Console)使用libuv实现简单的异步WEB服务器

    libuv是一个很强大的异步处理框架(严格意义上不能叫框架,其实就是一组异步函数库,当然框架这东西有各种各样的定义和理解_^...),最初的的目的是用于NODEJS的异步处理,不过因为它是一个独立的项 ...

  2. C#开发Windows窗体应用程序的步骤

    使用C#开发应用程序时,一般包括创建项目.界面设计.设置属性.编写程序代码.保存项目.程序运行等6个步骤. 1.创建项目 在Visual Studio2017开发环境中选择“文件”→“新建”→“项目” ...

  3. 第一章 C#入门 (Windows窗体应用程序)(三)

    [案例] 编写一个Windows窗体应用程序,窗体上有一个文本框和两个按钮([显示]和[清除]按钮). 单击[显示]时,文本框的背景变为蓝色并且居中显示“努力学习C#”: 单击[清除]按钮,文本框的背 ...

  4. 第一章 C#入门(Windows窗体应用程序)(二)

    C#窗体应用程序(二) [案例]设计登录界面,效果如下: [案例实现步骤] 1.新建项目(Windows控制台应用程序 文件→新建→项目:选择“项目类型”为Visual C#,“模板”为Windows ...

  5. 第一章 C#入门 (Windows窗体应用程序)(一)

    我的第一个窗体应用程序(一) [案例说明]  在文本框中显示一行文字“Hello C#!”,单击[显示]按钮后在文本框中显示文字:单击[清除]按钮后清除文本框中的内容. [案例实现步骤] 1.新建项目 ...

  6. C#windows窗体应用程序如何自适应大小

    用C#的windows窗体应用程序做界面十分轻松,但是系统默认是没有让控件跟随窗体的大小改变而已改变的.所以需要我们手动去设置让窗体控件随着窗体的大小改变而改变.所以我们只需要将控件选择 然后把Anc ...

  7. API、Win32 SDK、Win32项目、MFC、Windows窗体应用程序的区别

    [原]API.Win32 SDK.Win32项目.MFC.Windows窗体应用程序的区别 首先来看一下每一个术语的定义: API:Application Programming Interface. ...

  8. C#Windows窗体应用程序MyKTV项目

    后台管理其中有一个添加歌手信息和歌曲信息的窗体要点击按钮并上传文件,因为对那些文件流什么的不懂,所以用了老师教的最简单的判断方法,但此方法只是按后缀名判断文件的样式,如果后缀名乱改就不行了! 此时需要 ...

  9. 第三章 C#程序结构[3.2 选择结构的应用(Windows窗体应用程序)(四)]

    [案例]设计一个顾客选购商品的系统.其中,顾客身份有两类,一类是VIP,另一类是普通会员:商品种类有3种.分别是上衣.裤子和鞋子.其中,VIP享受8折优惠和商店赠送的礼品,而普通会员都不享受.单击[确 ...

随机推荐

  1. idea破解方法

    1.http://idea.lanyus.com/ 下载破解文件 2.将下载的JetbrainsIdesCrack-3.4-release-enc.jar破解文件放在idea安装目录下的bin中: 3 ...

  2. Girls' research---hdu3294(回文子串manacher)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3294 给出一个字符串和加密的字符规律 例如 c abcba c代表把串中的c改成a,d改成b... b ...

  3. Python并行编程(三):线程同步之Lock

    1.基础概念 当两个或以上对共享内存操作的并发线程中,如果有一个改变数据,又没有同步机制的条件下,就会产生竞争条件,可能会导致执行无效代码.bug等异常行为. 竞争条件最简单的解决方法是使用锁.锁的操 ...

  4. Redis常见操作

    1. 对于key的所有操作 del key1 key2 … keyn 作用:删除1个或者多个键返回值:不存在的key忽略掉,返回真正删除的key的数量 rename key newkey 作用:给ke ...

  5. Flask视图函数与模板语法

    1.Django中的CBV模式 ​ 2.Flask中的CBV和FBV def auth(func):     def inner(*args, **kwargs):         result =  ...

  6. nodejs获取参数的方法

    1 获取get的querystring参数 GET /test?name=fred&tel=0926xxx572 let aa = req.param("name"); l ...

  7. 如何查看java class文件的jdk版本

    方法1: 用二进制的查看方式打开该class文件,参考如下: 只看第一行数据,前面8个字节CA FE BA BE 是固定的,之后4个字节00 00 是次版本号,次版本号后面的4个字节(00 33)   ...

  8. mac下python环境pip报错[SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590) 的解决方法

    1.mac下python环境pip报错: issuserdeMacBook-Pro:~ issuser$ pip install pyinstallerCollecting pyinstaller  ...

  9. 在vue中使用express-mock搭建mock服务

    首先安装 nodemon ,如果是全局安装,那么所有的项目都可以使用mock服务 npm install nodemon 再安装express-mockjs npm i -D express-mock ...

  10. 如何在mysql中存储音乐和图片文件

    如何在mysql中存储音乐和图片文件? 果你想把二进制的数据,比如说图片文件和HTML文件,直接保存在你的MySQL数据库,那么这篇文章就是为你而写的! 我将告诉你怎样通过HTML表单来储存这些文件, ...