WinForm基本知识

好,我今天就来讲解WinForm。WinForm可能计划8节课。第1节课,我想简单介绍一下WinForm的一些基本东西,介绍Form这个类。第2节课,我可能介绍一些简单的控件。第3节课,我将介绍2~3个复杂的控件。第4节课程中将涉及到ADO.NET,看情况,若果允许的话,我将讲解两节课的ADO.NET。接下来介绍一下窗体的画图这些类。完了再学习模式窗体和非模式窗体。最后要介绍一下WinForm中比较复杂的东西,比如打包发布啊调试等等一些课程,我放在最后进行讲解。最后,在课程结束之前带领大家做一个比较小的Demo,来完整的看一下这个WinForm。
今天第一节课程就是来建立一个WinForm程序,主要是好多朋友刚接触DotNet或者对VS2008比较生熟。创建一个WinForm程序怎么做呢?应该从文件——>新建——>项目,会弹出一个新建项目对话框。(我这里只安装一个C#语言,装了VB了有VB,装了Visual C++有VisualC++)选择Windows窗体应用程序。细心的朋友的会发现,在我的右下角会有个.NET Framework 2.0和.NET Framework 3.0还有.NET Framework 3.5这三个版本。我们教学呢,用2.0的教学。因为有很多朋友用VS 2005,所以我用2.0来建立一个 项目。WinForm里面不涉及到Linq表达式那些涉及到3.0或3.5的知识。只是2.0就够我们用了。
给项目的名称起名为WinFormDemo。随着这个项目创建一个解决方案,它跟我建立的项目名称一样。也就是说我在以前说过,一个解决方案中可能有多个项目,有可能只有一个。当然在我这个例子中只有一个哈。我打开右边的解决方案管理器上,你会发现它自动生成一些文件。对这些文件,我简单做一些介绍哈。我看解决方案管理器上,这是我自动生成的解决方安。这个项目下也包括一系列的文件。我简单跟大家说一下哈。
大家第一看到的文件时那个program,大家看到扩展名为.cs,可以理解这是我们放C#代码的文件。我们打开它来看一下哈。这个program会自动引用一些命名空间,并且有一个静态类program在这个静态类中有static void main() 方法,main()是一个函数的入口点当然在这个WinForm中间也是。这个项目运行是送main方法开始的。main()在加载的时候就是一个进程,一个exe或dll就是一个进程。进程只是在内存中分配一块区域,在这个区域中,我去实例化这个Form1,把Form1给显示出来就可以了。program简单的是说是程序的入口点。
大家接下来看一下这个Form1这个窗体。这里是我创建项目是默认生成的窗体。我可以把它删除,自定义一个窗体比如说,重命名一下命名为MainForm。当我展开这个MainForm的时候,它底下还有两个东西一个.resx是它一个资源文件,假如你程序上需要一些音乐图片之类的,它就用来保存路劲或一些资源文件。MianForm.cs是MainForm存放的后台代码。这样说是不严谨的,细心的朋友会发现,它添加一个关键字Partial,这是什么东西呢?这里就是这是类的一部分,还有一部分在哪里呢?在MainFormDesigner.cs 的里面,这里也有这个关键字,可以将这个类写到两个文件中。
下面我们来看一下这个MianForm这个类,我在C#中讲过继承,用冒号来实现的。大家可以看到MainForm类是继承于Form类。这个Form是Microsoft为我们定义好的,就像一个模板一样。如果我们要定义一个窗体我们可以从这个模板中继承。然后我再对这个模板进行个性化定制。我选中这个Form类,点右键转移到定义。我们可以看到Form是从源数据,边上上了一个小锁,这是什么意思?这是说我们看到的代码是通过反射机制从dll中间反射出来的它是不可改的。大家只能看它而不能修改其中代码。大家看Microsoft给我们定义这个类啊,它的构造函数,它底下还有好多方法属性和事件等等。我看到的protected、public 等等,大家学过OOP之后就可以知道这些都可以继承到子类中间的,也就是说子类中可以被访问到的。至于这个Form中有些什么呢?我不想一个个说。我想通过后面的可视化的来看这些成员。为什么我要说成员?有人知道吗?大家如果知道,我会在讲C#中类的成员对吧。这里我又说窗体的成员。窗体也就是类嘛。也也就是它这个类与以前的类有点不同,它是可视化的量化到一个窗体上可视化的。但是它本质上还是一个类。也就是说它本身也有很多它自己的成员的。我就拿这个MainForm的构造函数,它就是类的一个成员。
现在我来讲解引用这个文件夹,大家会发现system.data等等一些乱七八糟的一些东西。这是什么东西呢?用心的同学会发现,这个与using差不多啊?对的,这里只是用dll文件形式呈现的。如果没有,大家可以右键添加引用。一个dll中可以包含一个或多个命名空间。
property(属性),它包括你项目一些版本、资源编译时候的信息都会包括在这个文件夹中间。虽然这个文件夹用的东西比较少,但是一些公司、版权信息都会包含在里面。有些时候,我们会调用这些。项目的辅助信息。
接下来,我们重点说MainForm和MainFormDesigner之间的关系。大家打开这个窗体会发现这是一个普通的窗体。窗体就是一个可视化的平面的一个东西。窗体最醒目的特征是最小化、最大化、关闭。当然还有窗体的名称和窗体的图片等等一些东西。这些都从运行起来的这个角度去看它。大家从开发角度或者说从一个程序员的角度去看它的时候呢?大家更多把它看做一个容器。为什么这么说呢?大家经常去用一些程序的时候,比如QQ。它其实也是个窗体程序,它有标题它有最小化最大化关闭、这些图标这些链接等等。它就是一个主窗体包含着的这些东西。说到底,它就是容器,比如我可以在这个窗体上放置一个按钮、一个文本框。类是如何放这个容器呢?
我来分析一下它。构造函数,它的特点,名称与类名相同它没有返回值,参数是可有可无的。这里它使用了一个无参的构造函数。这里构造函数大家发现其调用了一个方法。这个方法打哪里呢,点右键转到定义。发现在非不类的另一个部分。在MianFormDesigner这个文件里面。当这个窗体在program中被new的时候,调用了MainForm构造函数,这个函数有调用另外一个方法,这个方法在MainFormDesigner中。.NET程序看起来比较呆,拖拖控件就oK,不像Java那样。但是道理都是一样的。只要大家了解这个本质和机制就行了。如果窗体上要生成100个控件,大家用代码写,那效率是非常的低下的。如果大家用Microsoft给大家提供这种便捷的方式,布局起来就相对比较快。这样就提高了企业的生产效率。对于企业来说是非常愿意做这件事情的。如果是为了调高程序员水平,那么OK你可去写个buuton2。
如果从类的角度来看,我来分析一下它。大家会发现窗体是一个类。按钮相当于窗体的一个字段。并且这字段是pravite是私有的。
大家会遇到一个问题,通过一个窗体来调用另外一个窗体。怎么调用呢?大家可以考虑考虑,我可以通过Button1调用subForm1.
如果学OO学的比较好的朋友一下 就想明白。你subForm1不就是个类吗?既然这个类我想用你怎么用啊,只要把你new成对象就可以用你啦。我来双击这个buuton1.一个类调用另外一个类可以通过new这种方式显示出来。要调用这个类必须实例化,然后show出来。
接下来我还想说,既然窗体是类,类就有很多成员:属性、事件、字段、索引器等等。那么这个可视化类有一些什么样的成员呢?到了WinForm以后,可视化类有三个比较重要的成员:方法、属性、事件。我在C#最后一讲中讲到事件和委托。事件的到来就给了鼠标和键盘良好发挥的空间。我可以单击它,双击它可以鼠标移动,把焦点落在窗体上,我可以按键盘按s键,按c键什么等等我都能识别出来。
下面,大家就来看一下可视化类的三种成员,属性。属性它有属性面板。里面有个颜色。就好比肤色。啊张三过来,张三长的比较黑。李四长的比较白。所以窗体一样。把的窗体颜色可以改变。但是人的皮肤不可变哟,呵呵。
非常多啊,大家可以挨个去改改,然后下面会有文字提示。
事件,是个东西,这里用闪电。
方法是调用的。要在代码中去写。
事件是一个动作,它不可能去实现一个功能。方法是真正的功能。触发某个事件来指定某个功能去执行。中间是通过委托来实现的。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
c#编程集合资料,不错的应用设计,另附一些开发案例的下载地址,欢迎大家下载学习。 学习完本课程之后,我们需要达到以下目标: (1) 掌握基本的C#语法,熟练运用C#编写基本的程序逻辑。 (2) 能够创建C#控制台应用程序并处理输入输出。 (3) 掌握C#中的数组,并对数组进行相应的排序,查找操作。 (4) 熟练使用C#的字符串对象。 (5) 掌握Windows窗体应用程序的创建,能熟练使用常用的控件设计窗体界面。 (6) 掌握MDI应用程序的开发步骤。 (7) 了解ADO.NET的组成和工作原理。 (8) 通过ADO.NET访问对C#项目开发全程实录视频教程(全10个案例):htt: /cnrdn com/gCxC 课程说明… 第1章C#语法基础…… 核心技能部分 1.1 Net与C#概述. 111Net与C#的产生与应用 1.1.2 Visual studio 10 1.1.3创建C井应用程序 12 2C#语言基础 16 121变量与常量…16 12.2运算符和表达式 19 123C#语言中的注释 1.2.4使用 Console处理输入输出 21 1.3 C#语句结构 25 131条件语句 .25 132循环结构 32 任务实训部分.… 38 1:根据时间输出问候信息…… 38 2:三个数字比较大小 39 3:判断用户输入的字母 .40 输出裴波那契数列…… 翻着音 40 巩固练习 第2章嵌套循环和数组. 44 核心技能部分… .45 2.1 VS2008中的调试技巧 45 2.2 嵌套循环 47 2.3 数组. 50 231数组的定义 50 232数组的基木操作 50 233数组的排序 51 任务实训部分… 55 1打印等腰三角形 55 2:数组的操作 56 3:数组的排序。 错误!定义书签 4:数组的排序 错误!未定义书签 巩固练习 57 第3章方法与字符串 59 C#项目开发全程实录视频教程(全10个案例):htt: /cnrdn com/gCxC 核心技能部分 使用方法 311方法的定义 312方法的调用 63 313参数传递 String类 321C#语言中常用的字符串处理方法... 68 322格式字符串 32.3 String Builder类. 3.3 类型转换…14 331隐式转换 74 332显式转换.…… 74 333常用类型转换方法… 7 任务实训部分 77 1:方法的使用 2:从邮件地址提取用广名 80 3:网址类型分析 81 4:字符串转换 82 巩固练习. 84 第4章指导学习:阶段总结 86 知识总结 翻着 .:::a:a:.:::a:B:a:::::..aa:::.:.aa:.:aa::: 86 41.1核心技能目标 86 412知识体系总结… 86 4.2 综合实训 任务1:制作月份日历 任务2:数组数据添加和排序. 错误!未定义书签 任务3:自杀游戏… 错误未定义书签。 第5章 Win form常用控件 核心技能部分 90 创建 Windows应用稈序 90 511 Windows应用程序概述. 90 512创建第一个 Windows应用程序 5.13项目结构分析 5,2 Windows窗体….97 5.,21窗体中的常用属性. 98 522窗体中的常用事件…… 99 Windows窗体中的常用控件 9 C#项目开发全程实录视频教程(全10个案例):htt: /cnrdn com/gCxC 5.31 Winform控件公共属性… 532标签Labe) 01 533文本框( TextBox) ·,, 101 534按钮( Button)…102 535列表框 ListBox) 102 536组合框 Combobox) 103 53.7单选按钮( Radio Button)和复选框( CheckBox) 104 538图片框( Pictruebo×)..105 54用 Message Box类显示消息窗口 541消息框的显示……106 5.4.2消息框的返回值 107 综合案例:职员信息管理. 109 仟务实训部分…… 115 1:ATM信息查询 115 2:编写建表向导窗体…… 3:火车票预定程厅… 124 巩固练习… 第6章 MD窗体应用程序设计… 核心技能部分…… 130 6.1 SD窗体和MD窗体应用程序简介. 错误!未定义书签。 6.2 单文档应用程序的创建 30 62.1菜单栏( Menustrip) 130 622菜单栏的创建 130 623上下文菜单 ContextMenuStrip) 6.3 多文档应用程序 错误!未定义书签。 631创建多文档界面应用程序. 错误!未定义书签 632排列子窗口 错误未定义书签。 64图像列表( mageList控件… 134 65工具栏( ToolStrip控件) 135 66 状态( StatusStrip) 138 67选项卡( TabControl Timer控件 69 MD综合示例 错误!定义书签 任务实训部分……143 1创建记事本”应用程序 错误!未定义书签 2:增强”记事本”功能∴ 143 3:实现记事本字体样式设置… 144 C#项目开发全程实录视频教程(全10个案例):htt: /cnrdn com/gCxC 4:变色窗体 巩固练习……… 1448 第7章 使用 ADO. NET完成简单的数据库操作…. ·,, 150 核心技能部分 151 ADO. NET概述 151 1 ADO.NET的简介 151 7.12 ADO.NET的优点 152 713 ADO.NET的结 52 NET Framework数据提供程序 1154 7.21 Connection对象…………………………155 72.2使用 Connection对象链接到数据库 7.3异常操作 57 731try和 catch块 158 732数据库链接示例 Command对象 ∴161 741 Command对象简介 161 742 Command综合示例 任务实训部分 1:实现进销存系统用户注册 168 2:实现进销存系统用户登录.… 171 3:实现用户的删除功能…… .:.::::::.:...:::.:.:a.::::.:::::::::.:::.:::::::.:::.: 172 巩固练习 174 第8章使用 Data Reader完成查询功能 177 核心技能部分… 178 8.1 DataReader对象 811 Data reader对象简介 178 812 Data Reader对象常用的属性和方法 813 Data reader对象的使用 179 8.2 控件 81 821 Listview控件介绍…… 81 822 Listview控件的使用 数据库操作综合示例 187 任务实训部分…… L94 1:使用 Listview控件查询部门员工信息… 94 2:部门员工信息删除和修改 3:实现员工信息模糊查询... 203 巩固练习 204 C#项目开发全程实录视频教程(全10个案例):htt: /cnrdn com/gCxC 第9章 使用 Dataset实现断开式数据访问 206 核心技能部分.… 207 91数据集( Dataset) ·,, 207 911数据集( DataSet)简介…207 912数据集的结构 08 91.3数据集的工作原理 914创建 Data set对象…… 211 9,2 DataAdapter对象1211 92.1 DataAdapter对象简介… 211 922 DataAdapter对象的使用.. 213 3 Datagridview控什的使用 219 931 Data gridview控件简介 219 932 Datagridview控件的使用. 221 9 综合示例 226 仟务实训部分.… 229 1:航班查询窗体设计 29 2:显示所有航班信息 232 3:根据两地査询航班 .233 4:航班详细信息查询 234 巩固练习 235 第10章课程总复习… …)误!未定义书签。 101知识总结 错误!未定义书签 1011核心技能目标 错误!定义书签。 101.2知识体系总结 错误!未定义书签。 02任务实训 错误!未定义书签。 第11章项目案例:酒店管理系统…… 错误!未定义书签 111训练技能点…… 错误未定义书签。 112需求说明 错误!未定义书签 113设计与思路分析 错误未定义书签 113.1系统功能分析 错误!未定义书签。 1132数据库设计 错误!定义书签。 114实现步骤…… 错误!未定义书签 115时间分配 错误!定义书签 C#项目开发全程实录视频教程(全10个案例):htt: /cnrdn com/gCxC 第1章C#语法基础 学习内容 c#的发展史 C#的基本语法 C#的流程控制语句 俨能力目标 掌握仗用S2008开发C#NET控制台应用程序 掌握C#语言的基本语法 掌握c#的程序流程控制语句 C#项目开发全程实录视频教程(全10个案例):htt: /cnrdn com/gCxC 本章简介 从本门课开始我们将要开始学习¢#语言和NET平台。本章将使学员对NET和¢#有一个 初步的认识,了解C#的开发环境,编写第一个C#控制台应用程序。C#语言的基本语法和我 们之前的学习的C语言、Java语言一样同属于C语言语法系列,有很多相似的地方,同时也 有一些不同的地方,因此我们在学习的时候需要注意它们之间的区别,不要混淆。在本章中, 我们需要掌握c#中的变量、数据类型、运算符、条件、分攴、循环等基C排基础语法,这些 语言层血的知识是我们编写所有程序的基础,因此必须牢固掌握。 核心技能部分 1.1Net与C#概述 1.1.1Net与C#的产生与应用 1. Anders Hejlsberg-C#之父 Anders hejlsberg原木是曾经大名鼎鼎的 Borland公司的一员,他曾经编写了 Pasca编译 器,又把 Turbo pascal变为面向对象的 Object Pascal,并以此为基础开发了轰动全球、盛极 时的廾发工具 Delphi,为 Boland公司赚了个盆钵满盈。 随着 Delphi日渐成熟, Anders的兴趣转向了Java领域,他在」ava开发领域扩展方面有 很多自己独特的想法,并想在此领域大展宏图,但 Borland的经营者们还要靠他这棵“摇 钱树”继续在 Delphi上人肆捞金,所以他有一段郁郁不得志。 比尔盖茨三顾茅庐,力邀 Anders hejlsberg,并许以重金和宽松的环境,终于把 Anders 挖到了微软的旗下,其后由其主持设计,在2000年6月发布了新的开发语言C#(读做C Sharp),此后微软在2002年推出了 Microsoft net开发平台。 3 1.1.1 Anders He jlsberg C#项目开发全程实录视频教程(全10个案例):http://cnrdn.com/gcxc 2.C#语及其特点 与Java一样,C#语言是一个完全的面向对象语言,它继承了C++Java和 Delphi的优 点,又借鉴了VB的简单易学。体现了当今最新的程序设计技术的功能和精华。C#继承了C 语言的语法风柊,同时又继承了C+的面冋对象特性。不同的是,c#的对象模犁己经面向 Internet进行了重新设计,使用的是NET框架的类库;C#不再提供对指针类型的支持,使得 程序不能随便访问内存地址空间,从而更加健壮;C#不再支持多重继承,避免了以往类层次 结构中由于多重继承带来的可怕后果。NET框架为C#提供了一个强大的、易用的、逻辑结 构一致的程序设计环境。同时,公共语言运行时( Common Language runtime)为C#程序语 言提供了一个托管的运行时环境,使程序比以往更加稳定、安全。其特点有: 语言简洁。 保留了C++的强大功能 快速应用廾发功能 语言的自由性 强大的Web服务器控件。 支持跨平台 与XML相融合 如果之前没有其他话言的编程经验,使用c#语言编程将是一个良好的开端。如果有其 他语言的编程基础,程序员将发现¢#语言除了像ⅤB一样简单易学外,还是一种拥有强大 功能的语言。而且 ASP NET平台也是完仝通过c#语言开发的,这决定了C语言得天独厚的 优势。但在任何情况下,C#语言都不可能孤立地使用,它必须同 Microsoft. net framework 起使用,因为使用C#语言编写的所有代码总是在 Microsoft .net framework中运行。 1.1.2 Visual studio 微软针对Net推岀了功能强大的集成丌发环境来支持开发人员的№et应用程序丌发,这 就是 Visual studio,它是目前最主要的Net平台开发环境。VS集成了 NET Framework和Net 开发插件,可以用来进行几乎所有Net应用程序的设计和开发L作,如 Windows应用程序 Web应用稈序、 Windows服务、智能设备应用程序等。 随着 NET Framework的不断升级, Visua| Studio也在不断升级,其发展历程可以用表1-1-1 来说明 表1-1-1Vs发展历程 年代 2002 2003 2005 2008 2010 廾发工具版木Vs2002 VS2003 VS2005 VS2008 VS2010 Net 1.0 1.1 2.0 3.5 4.0 Framework 由于本学期的知识点主要集中在C#的基本语法、 Win forms开发和 ADO. NET,这些知识

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值