(1)[WinForm]Application.Exit關閉應用程式後真的不執行了嗎?

結論:

Application.Exit:會通知應用程式停止相關的訊息(all threads),並等待訊息執行完成後關閉應用程式(all UI),

但這只保證訊息是在Application.Exit前才能被停止,Application.Exit後的訊息是無法被停止的,

所以後續工作仍會佔用系統資源,直到相關工作結束為止。

Application.ExitThread:結束目前執行緒的訊息迴圈,並關閉執行緒上的所有視窗,所以不會引發Form.Closed和Form.Closing事件。

Environment.Exit:不等待相關訊息的結束,強制退出應用程式。

所以個人認為,正確的退出應用程式,應在Form.Closing事件中循環處理停止每個訊息工作,

並在Form.Closed事件中加入Environment.Exit會來的比較保險點。

 1         //关闭窗体
 2         #region 关闭窗体
 3         private void Form1_FormClosing(object sender, FormClosingEventArgs e)
 4         {
 5             string msg = "有内容,但未保存,是否保存";
 6
 7             if (save == false)
 8             {
 9                 if (richTextBox1.Text != "")
10                 {
11                     if (flag == true)
12                     {
13                         //1.----------------------------------------------->
14                         switch (MessageBox.Show(msg, "警告", MessageBoxButtons.YesNoCancel))
15                         {
16                             case DialogResult.Yes: //选择“是”
17                                 if (SaveFile())
18                                 {
19                                     Application.ExitThread();
20                                 }
21                                 break;
22                             case DialogResult.No:
23                                 e.Cancel = false;
24                                 break;
25                             case DialogResult.Cancel:
26                                 e.Cancel = true;
27                                 break;
28                         }
29
30                         //1.------------------------------------------------->
31                     }
32
33                 }
34             }
35             if (save == true)
36             {
37                 if (richTextBox1.Text != "")
38                 {
39                     if (flag == true)
40                     {
41                         msg = "将更改保存到" + filePath;
42                         //2.----------------------------------------------->
43                         switch (MessageBox.Show(msg, "警告", MessageBoxButtons.YesNoCancel))
44                         {
45                             case DialogResult.Yes: //选择“是”
46                                 if (SaveFile())
47                                 {
48                                     Application.ExitThread();
49                                 }
50                                 break;
51                             case DialogResult.No:
52                                 e.Cancel = false;
53                                 break;
54                             case DialogResult.Cancel:
55                                 e.Cancel = true;
56                                 break;
57                         }
58
59                         //2.------------------------------------------------->
60                     }
61
62                 }
63             }
64         }
65         #endregion

(2) 查找按钮

 1        #region 查找按钮
 2
 3         private void Search_Click(object sender, EventArgs e)
 4         {
 5             if (FindMyText(tb_txt.Text.Trim(), indexToText) == -1)
 6             {
 7                 MessageBox.Show("已经完成搜索文档。", "提示");
 8
 9                 indexToText = 0;
10             }
11         }
12
13         public int FindMyText(string text, int start)
14         {
15             //初始化默认的返回值为false。
16             int returnValue = -1;
17
18             // 确保已经指定一个搜索字符串和一个有效的起始点.
19             if (text.Length > 0 && start >= 0)
20             {
21                 if (start != richTextBox1.Text.Length)
22                 {
23                     // 获得搜索字符串的位置在richTextBox1.
24                     indexToText = richTextBox1.Find(text, start, RichTextBoxFinds.MatchCase);
25
26                     // 确定文本被发现在richTextBox1.
27                     if (indexToText >= 0)
28                     {
29                         returnValue = indexToText;
30                         indexToText += 1;
31                     }
32                 }
33             }
34             return returnValue;
35         }
36
37         #endregion

C#写字板问题一二 —— C#+WinForm编程趣味入门实战-天轰穿.NET4趣味编程视频教程...相关推荐

  1. android php实战,android编程开发入门实战例子–hello word

    android开发入门实战编程例子–hello word 1.打开Eclipse,选择菜单File->New->Other,打开新建对话框.选择Android Project后,点击Nex ...

  2. 留言获赠书 | 朱春雷:Rust编程:入门 实战与进阶

    祝微信公众号 乐生活与爱IT 的读者朋友们,五一劳动节,吃好喝好睡好玩好,节日快乐! 今天给读者朋友们一个福利,请您在文章后面留言,留言比较精彩的,且获赞数比较多的朋友(至少3位),将有机会获得一本, ...

  3. linux c 并行编程从入门到精通,VISUAL STUDIO 2010并行编程从入门到精通(微软技术丛书)...

    摘要: <微软技术丛书:Visual Studio2010并行编程从入门到精通>循序渐进,步骤式动手练习迅速帮助读者掌握并行编程的基础知识. <微软技术丛书:Visual Studi ...

  4. python编程从入门到精通pdf-终于晓得python编程从入门到精通

    虽然在编程语言的热度榜上,还是java排行第一,但是python却是最近2年上升最快的,越来越多人都开始选择实用python了,原因很简单,语法语句简约,开发效率高.以下是小编为你整理的python编 ...

  5. python编程 从入门到实践-终于懂了python编程从入门到实践

    Python语言是一种典型的脚本语言,简洁,语法约束少,接近人类语言.有丰富的数据结构,例如列表.字典.集合等.具有可移植性,支持面向过程和面向对象编程,并且开源.以下是小编为你整理的python编程 ...

  6. java spring 面向切面编程_Spring Boot实战系列(3)AOP面向切面编程

    AOP是一种与语言无关的程序思想.编程范式.项目业务逻辑中,将通用的模块以水平切割的方式进行分离统一处理,常用于日志.权限控制.异常处理等业务中. 快速导航 编程范式主要以下几大类 AOP(Aspec ...

  7. python编程从入门到精通实践_《Python编程:从入门到实践》总结_Day01

    前言 是在原有文章的基础上直接扩充更新还是将其作为单独的系列文章呢?思虑再三,还是决定把接下来的Day01-Day05的总结独立出来.此系列是关于<Python编程:从入门到实践>的总结, ...

  8. 风变编程python入门经典100题_风变编程《Python基础语法+爬虫精进》

    作为IT小白,从没想过会主动去学习这方面的知识,因为学历专业差距很大,从事职业也基本用不上这些.然而,在偶然一次机会接触了风变编程体验课后,我发现了python给我打开了一个新的视野,未知领域的探索就 ...

  9. python编程从入门到实践读书笔记-《Python编程:从入门到实践》项目部分读书笔记(二)...

    鸽了一个暑假没有更新,现在趁着还没开学更一下.咕咕咕 上期作业: 请创建一个Django项目,命名为Blog,建不建立虚拟环境随便你,最后本地跑成了就行. 步骤: ①在需要创建工程的文件夹下打开cmd ...

  10. python编程从入门到实践课后题答案-python编程:从入门到实践习题5-8~5-11

    5-8 以特殊方式跟管理员打招呼: 创建一个至少包含 5个用户名的列表,且其中一 个用户名为'admin'.想象你要编写代码,在每位用户登录网站后都打印一条问候消息. 遍历用户名列表,并向每位用户打印 ...

最新文章

  1. linux 线程 pthread create 源码 剖析
  2. android canvas png 失真,【小程序】--------------处理canvas导出图片模糊问题-------------【劉】...
  3. NYOJ_5739最大岛屿(河南省第八届acm程序设计大赛)
  4. Echarts五步法加初体验
  5. Python可以这样学(第五季:Socket编程)-董付国-专题视频课程
  6. socket编程(一)最简单的c/s模式
  7. Q95:纹理映射(Texture Mapping)(3)——Triangle Meshes
  8. linux纯没网安装mysql_实用性Linux安装mysql
  9. idea打包jar程序
  10. D11:Chickens and Rabbits(鸡兔同笼问题,附题解)
  11. QQ邮箱功能详解:垃圾邮件过滤(转)
  12. 简单 sql 语句 实用大全
  13. Java oss 上传图片视频
  14. ComputerVision会议+领先研究室+专家+代码网址(转载)
  15. Win8系统如何设置时间自动同步方法 电脑系统时间不能同步怎么设置
  16. ASIHTTPRequest 状态栏网络等待指示器
  17. python中 “按位与,或,异或”与C语言的不同
  18. C++ P1282 多米诺骨牌
  19. 优秀的软件测试工程师都会以下八点!
  20. tinyproxy代理简单使用

热门文章

  1. HBuilder实现WiFi调试Android
  2. CST,CET,UTC,GMT,DST,Unix时间戳几种常见时间概述与关系(转)
  3. 一本通1628X-factor Chain
  4. poj1990两个树状数组
  5. 章节四、1-if条件语句
  6. spring接收ajax参数的几种方式
  7. 10.TreeSet、比较器
  8. POJ 3678 2-SAT简单题
  9. 2.3线性表的链式表示和实现(静态链表)
  10. 实现日志文件直接导入数据库