• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > .Net Winform开发笔记(四)透过现象看本质

.Net Winform开发笔记(四)透过现象看本质

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了.net winform,iocomp net winform,vb.net winform,log4net winform,.net winform开发框架等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
写在前面:
从一个窗体的创建显示,再到与用户的交互,最后窗体关闭,这中间经历过了一系列复杂的过程,本文将从Winform应用程序中的Program.cs文件的第一行代码开始,逐步分析一个Winform应用程序到底是怎样从出生走向死亡,这其中包括Form.Show()和Form.ShowDialog()的区别、模式对话框形成的本质原因、消息循环、Windows事件与.net中事件(Event)的区别、System.Windows.Form.Application类的作用、以及我之前一篇博客中(.Net开发笔记(二)网址)面试题中的最后一题,从Windows消息层次讲述点击按钮弹出一个MessageBox的详细过程。

我承认,不了解以上问题的Coder可能也能写出非常出色非常复杂的Winform应用程序出来,但不是有句老话么,知其然,亦要知其所以然。

另外,看本篇博客(或者接下来几篇)必须了解Win32编程知识,如果不清楚的同学,可以先上网学习学习,这就像学习MFC最好也得懂点Win32编程,本文不解释什么是Win32 API、什么是句柄、更不会解释什么是回调方法。

一个引子:
一个线程,具体啥定义我也就不说了,太抽象,我觉得还是把它看做是一个方法(函数),当然包括方法体中调用的其它方法,线程有开始,也有结束,分别可以比作方法的开始和结束,我们不管一个方法体内调用了多少其它方法,只要程序没写错,这个方法肯定有返回的时候,也就是说,在正常情况下,一个线程开始后,肯定会有退出(结束)的时候,那么,如果想让一个线程不会太快结束,我们可以在方法体内写些啥?“阻塞方法!”有人可能马上说,因为阻塞方法一般不会马上返回,只有等它执行完毕后,才会返回,在它返回前,调用它的方法不会继续运行下去,的确,在我学习C++语言的时候,经常写Console程序(那时候也只会写这玩意儿),为了不让黑屏闪一下就消失了,看不到运行结果,我经常在程序最后加上一行“int a;cin>>a;”,我当时也不知道为啥要这样写,只知道这样写了,程序不会马上结束。其实后来才知道,那行代码就是阻塞了整个程序,当你输入一个整数,按下回车,程序就会结束。

“阻塞方法”确实是一种方法,但是如果我们想在线程执行过程中,与外部(用户)进行交互,也就是说,在线程执行期间,用户可以通过输入来控制线程的运行情况,同样在Console程序中,该怎么实现?现在问题来了,不紧不能让线程马上结束,还要与用户有所交互,而且不应该只交互一次(否则,上面提到的cin>>a;完全够用),该怎么搞?不止交互一次?那么很容易就能想到“循环”,用循环来使线程与用户进行交互再好不过了,为了与本文相联系,用C#代码编写如下:
G
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • .Net WInform开发笔记(五)关于事件Event
  • .Net Winform开发笔记(四)透过现象看本质
  • .Net WInform开发笔记(三)谈谈自制控件(自定义控件)
  • .Net WInform开发笔记(二)Winform程序运行结构图及TCP协议在Winform中的应用
  • .Net Winform开发笔记(一)

相关文章

  • 2017-05-28C#窗体编程不显示最小化、最大化、关闭按钮的方法
  • 2017-05-28C#实现导入CSV文件到Excel工作簿的方法
  • 2017-05-28C#实现将汉字转化为2位大写的16进制Unicode的方法
  • 2017-05-28C# jpg缩略图函数代码
  • 2017-05-28C# Dynamic关键字之:dynamic为什么比反射快的详解
  • 2017-05-28深入分析C#中处理和键盘相关事件的详解
  • 2017-05-28C#中File类的文件操作方法详解
  • 2017-05-28C#面向对象设计的七大原则
  • 2017-05-28浅谈C#中的for循环与foreach循环
  • 2017-05-28C# 对文件与文件夹的操作包括删除、移动与复制

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 关于C# Math 处理奇进偶不进的实现代码
    • DevExpress之ChartControl用法实例总结
    • C# 去除首尾字符或字符串的方法
    • C# DataSet的内容写成XML时如何格式化字段数据
    • c#下注册表操作的一个小细节
    • C#中Socket通信用法实例详解
    • C#实现托盘程序并禁止多个应用实例运行的方法
    • C#随机生成Unicode类型字符串
    • 浅谈C#中堆和栈的区别(附上图解)
    • C#下实现创建和删除目录的实例代码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有