欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    VisualC#.NET程序设计基础教程.ppt

    • 资源ID:6523066       资源大小:498.50KB        全文页数:114页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    VisualC#.NET程序设计基础教程.ppt

    Visual C#.NET程序设计基础教程,经济管理学院 管理科学与工程系张福平Email:办公室:J6-205,Visual C#.NET程序设计基础教程,Visual C#.NET程序设计基础教程 第1章,第 1 章.NET Framework和C#概述,1.1.NET Framework体系结构1.2 C#语言概述1.3 创建第一个C#项目,1.1.NET Framework体系结构,.NET Framework是一个平台,该平台支持多种应用程序开发。.NET Framework是支持生成和运行下一代应用程序和XML Web Services的内部Windows组件。.NET Framework具有两个主要组件:公共语言运行库和.NET Framework类库。,Visual C#.NET程序设计基础教程 第1章,1.1.1.NET Framework环境,Visual C#.NET程序设计基础教程 第1章,1.1.NET Framework体系结构,公共语言运行库(Common Language Runtime,CLR)。CLR是一个运行时环境,它负责.NET库所开发的所有应用程序的执行。一个典型的.NET程序的运行过程主要包括以下步骤:选择编译器将代码编译为Microsoft中间语言(MSIL)将MSIL编译为本机代码运行代码。,1.1.2 公共语言运行库,Visual C#.NET程序设计基础教程 第1章,1.1.NET Framework体系结构,.NET Framework类库是一个与公共语言运行库紧密集成的类型集合。可开发下列类型的应用程序和服务:控制台应用程序 Windows GUI应用程序 ASP.NET应用程序 XML Web Services Windows服务,1.1.3.NET Framework类库,Visual C#.NET程序设计基础教程 第1章,1.2 C#语言概述,C#语言的演化。从C和C+演化而来C#语言的特点:简单、灵活 功能强大 表达力丰富,1.2.1 C#简化,Visual C#.NET程序设计基础教程 第1章,1.2 C#语言概述,C#与VB。C#更强大灵活C#与C+C#是从C+的基础上演化而来的C#与Java的比较 Java对C#影响深刻,1.2.2 C#与其他语言比较,Visual C#.NET程序设计基础教程 第1章,1.2 C#语言概述,C#是高效的面向对象语言C#类机制还有一个特性是其属性的方法C#类可以使用多个参数化的构造函数,1.2.3 C#的面向对象技术,Visual C#.NET程序设计基础教程 第1章,1.3 创建第一个C#项目,命名空间实际上是一种组织关系和其他类型的方法。命名空间是逻辑意义上的组合而非物理组合。命名空间可以嵌套。不允许在另一个嵌套的命名空间中声明多部分的命名空间。“.”和using,1.3.1 Visual Studio 2005的安装1.3.2 Visual Studio 2005的使用1.3.3 命名空间,C#编程语言基础 第2章,第 2 章 C#语言基础,2.1 变了和表达式2.2 流程控制2.3 复杂的变量类型2.4 函数,C#编程语言基础 第2章,2.1 变量和表达式,变量的声明 格式:,;标识符:字母、_、开始,后面可以有数字变量名和关键字不能重复。C#区分大小写。变量命名要做到“见名知意”,2.1.1 变量(表示内存中的一个存储数据的位置),C#编程语言基础 第2章,2.1 变量和表达式,变量的初始化 先声明,再初始化。声明的同时初始化。,2.1.1 变量(表示内存中的一个存储数据的位置),C#编程语言基础 第2章,2.1 变量和表达式,常量:其值在程序的使用过程中不发生变化的变量。在声明和初始化时,加上关键字const const double pi=3.14;使用常量的好处:含义清楚。使得程序更易于修改。,2.1.1 变量(表示内存中的一个存储数据的位置),C#编程语言基础 第2章,2.1 变量和表达式,值类型在堆栈中直接存储其值,等价于其他语言的简单类型。引用类型在堆中存储值的引用,与C中指针相似。,2.1.2 数据类型,C#编程语言基础 第2章,2.1 变量和表达式,整型,2.1.2 数据类型(值类型),C#编程语言基础 第2章,2.1 变量和表达式,浮点型,2.1.2 数据类型(值类型),C#编程语言基础 第2章,2.1 变量和表达式,字符型 char用于存储单个字符,16位表示一个Unicode字符 转义字符用“”布尔类型 bool类型的值为true或false,不能在整数之间相互转换,0不表示false,非0不表示true。,2.1.2 数据类型(值类型),C#编程语言基础 第2章,2.1 变量和表达式,object类型 该类型是所有其他类型的父类型。string类型 字符串是字符类型的数组。修改一个字符串,实际上会创建一个全新的string对象。在字符串前加“”可以简化转义字符。,2.1.2 数据类型(引用类型),C#编程语言基础 第2章,2.1 变量和表达式,数学运算符+、-、*、/,%(可用于浮点类型)、+、-赋值运算符“=”+=、-=、*=、/=、%=、|=、=、&=、=比较运算符、=、=、!=,2.1.3 表达式,C#编程语言基础 第2章,2.1 变量和表达式,逻辑运算符!(非)、&或&(与)、|或|(或)、(异或)位运算符&(与)、|(或)、(异或)、(取反)、(右移)条件运算符 条件?True值:False值,2.1.3 表达式,C#编程语言基础 第2章,2.1 变量和表达式,隐式类型转换 任何类型A,只要其取值范围完全包在类型B的取值范围内,就可以隐式转换为类型B。显示类型转换 格式:(目标类型)变量;checked和unchecked用来测试操作是否产生溢出。字符串转换 ToString(),数字转换成字符串。Parse(),字符串转换成数字。,2.1.4 类型转换,C#编程语言基础 第2章,2.1 变量和表达式,使用using简化命名空间内容的引用命名空间的别名,2.1.5 命名空间,C#编程语言基础 第2章,2.2 流程控制,语句是定义了某项指令的有效的C#表达式,以分号结尾。最短小的语句是空语句。可以用把一些语句括起来成为一个语句块。,2.2.1 语句,C#编程语言基础 第2章,2.2 流程控制,if语句,2.2.2 分支结构,if(条件)语句;,if(条件)语句;else 语句;,if(条件)语句;Else if(条件)语句;Else 语句;,C#编程语言基础 第2章,2.2 流程控制,switch语句 switch(变量)case 值1 语句;break;default 语句;break;,2.2.2 分支结构,C#编程语言基础 第2章,2.2 流程控制,while循环 while(条件)语句;当条件为真时执行循环语句,在循环语句中必须有改变循环条件的语句,否则将可能是死循环。,2.2.3 循环结构,C#编程语言基础 第2章,2.2 流程控制,dowhile循环 do 语句;while(条件)当条件为真时执行循环语句,在循环语句中必须有改变循环条件的语句,否则将可能是死循环。但不管条件真假,都会先执行一次循环体。,2.2.3 循环结构,C#编程语言基础 第2章,2.2 流程控制,for循环 for(初始化;循环条件;循环条件增减量)语句;for循环中的三个部分都是可选的。,2.2.3 循环结构,C#编程语言基础 第2章,2.2 流程控制,goto语句 goto 标签;不能用goto从外部进入循环体;不能跳出类的范围和trycatch后面的finally块。break语句 可以退出任何该语句所在的循环循环。continue语句 必须用于循环体,只能结束本次循环,进入下次循环return语句 退出该语句所处的函数。,2.2.4 跳转语句,C#编程语言基础 第2章,2.3 复杂的变量类型,格式 enum typeName value1;value2;;使用:typeName varName;typeName=varName.value2;,2.3.1 枚举,C#编程语言基础 第2章,2.3 复杂的变量类型,格式 struct typeName type value1;type value2;;使用:typeName varName;结构和枚举都是在主函数外声明。,2.3.2 结构,C#编程语言基础 第2章,2.3 复杂的变量类型,一维数组 type ArrayName;数组在使用前必须初始化。1、int Ary1=1,2,3,4,5;2、int Ary1=new int5;/默认初始化为0 3、int Ary1=new int51,2,3,4,5;访问数组元素的方法:Ary1i,2.3.3 数组,C#编程语言基础 第2章,2.3 复杂的变量类型,foreach循环 foreach(baseType name in array)do something;说明:name将分别代表array中的每个元素进行循环运算,每次代表的元素都是只读的,不能在循环体内修改name的内容。,2.3.3 数组,C#编程语言基础 第2章,2.3 复杂的变量类型,多维数组 type,name;赋值和使用都和一维数组一样。foreach循环也可以用于多维数组,用法一样。数组的数组 int Ary,2.3.3 数组,C#编程语言基础 第2章,2.4 函数,格式:修饰 返回值类型 函数名(参数列表)函数的返回值 return 返回值;void类型的函数中不能使用return语句。函数参数 函数定义中的参数为形式参数,调用函数时的参数为实际参数,默认实参传递是按值传递的,可以在定义时使用ref关键字来表示某个参数是按引用传递的。按值传递不会改变原参数值,而按引用传递则可以。,2.4.1 函数的定义和使用,C#编程语言基础 第2章,2.4 函数,格式:修饰 返回值类型 函数名(参数列表)参数数组 格式 FunName(参数i,params Type 参数);调用时可以传多个参数。输出参数 用out关键字进行参数值的输出 格式 FunName(参数i,out Type 参数);,2.4.1 函数的定义和使用,C#编程语言基础 第2章,2.4 函数,变量的作用域是可以访问该变量的代码区域。只要变量所属的类在某个作用域内,该变量也在该作用域内。局部变量存在于表示声明该变量的语句块结束的大括号之前的作用域内。同名的变量不能在相同的作用域内声明两次。,2.4.2 变量的作用域,C#编程语言基础 第2章,2.4 函数,main函数是程序的入口,其返回值必须是int或void类型,并且是public的。main函数的声明:public static int main(string args),2.4.3 main函数,Visual C#.NET程序设计基础教程 第3章,第三章 C#面向对象程序设计,3.1面向对象编程简介 3.2 定义类 3.3 定义类成员 3.4类的更多内容,Visual C#.NET程序设计基础教程 第3章,什么是面向对象编程,面向对象编程代表了一种全新的程序设计思路 对象:变量和相关的方法的集合。其中变量表明对象的属性,方法表明对象所具有的行为。类:通常将属性及行为相同或相似对象归为一类。类可以看成是对象的抽象,代表了此类对象所具有的共同属性和行为 属性和字段:通过属性和字段可以访问对象中包含的数据。方法:对象的所有行为都可以用方法来描述 静态成员:可以在类的实例之间共享,可以看作是类的全局对象,Visual C#.NET程序设计基础教程 第3章,对象的生命周期,每个对象都一个明确定义的生命周期,即从使用类定义开始一直到删除它为止。在对象的生命周期中,除了“正在使用”的正常状态之外,还有两个重要的阶段:构造阶段对象最初进行实例化的时期。这个初始化过程称为构造阶段,由构造函数完成。析构阶段在删除一个对象时,常常需要执行一些清理工作,例如释放内存,由析构函数完成。,Visual C#.NET程序设计基础教程 第3章,3.1.2 OOP技术,抽象与接口继承 多态性 重载 消息和事件,Visual C#.NET程序设计基础教程 第3章,3.2 定义类,C#使用class关键字来定义类。其基本结构如下:Class MyClass/class members还可以在类定义中指定继承。C#支持类的单一继承,即只能有一个基类,语法如下:class MyClass:MyBaseClass/class members,Visual C#.NET程序设计基础教程 第3章,接口的定义,接口声明的方式与声明类的方式相似:interface ImyInterface/interface members接口的继承也可以用与类继承的类似方式来指定。主要的区别是可以使用多个基接口:public interface IMyInterface:IMyBaseInterface,ImyBaseInterface2/interface members,Visual C#.NET程序设计基础教程 第3章,3.2.2 Object类,所有的.NET类都派生于System.Object。如果在定义类时没有指定基类,编译器就会自动假定这个类派生于object。其重要性在于,自己定义的所有类除了自己定义的方法和属性外,还可以访问为Object定义的许多公共或受保护的成员方法。,Visual C#.NET程序设计基础教程 第3章,3.2.3 构造函数和析构函数,构造函数 使用下述语法把简单的构造函数添加到一个类中:class MyClass public MyClass()/Constructor code/rest of class definition 这个构造函数与包含它的类同名,且没有参数,这是一个公共函数,所以用来实例化类的对象。,Visual C#.NET程序设计基础教程 第3章,构造函数的执行序列,为了实例化派生的类,必须实例化它的基类。而要实例化这个基类,又必须实例化这个基类的基类,这样一直到实例化System.Object为止。如果对一个类使用非默认的构造函数,默认的情况是在其基类上使用匹配十这个构造函数签名的构造函数。如果没有找到这样的构造函数,就使用基类的默认构造函数。,Visual C#.NET程序设计基础教程 第3章,析构函数,class MyClass MyClass()/destructor code类的析构函数是用类名和前缀来声明的。当进行无用存储单元收集时,就执行析构函数中的代码,释放资源。在调用这个析构函数后,还将隐式地调用基类的析构函数,包括System.Object根类中的Finalize()调用。,Visual C#.NET程序设计基础教程 第3章,3.2.4 接口和抽象类,类似之处:抽象类和接口都包含可以由派生类继承的成员。接口和抽象类都不能直接实例化,但可以声明它们的变量。区别:派生类只能继承一个基类,即只能直接继承一个抽象类(但可以用一个继承链包含多个抽象类);类可以使用任意多个接口抽象类可以拥有抽象成员和非抽象成员;接口成员必须都在使用接口的类上执行它们没有代码体接口成员被定义为公共的;抽象类的成员也可以是私有的、受保护的、内部的或受保护的内部成员,Visual C#.NET程序设计基础教程 第3章,3.2.5 类和结构,结构与类的区别在于:结构是值类型,不是引用类型。它们存储在堆栈中或存储为内联,其生存期的限制与简单的数据类型一样。结构不支持继承。结构的构造函数的工作方式有一些区别。尤其是编译器总是提供一个无参数的默认构造函数,这是不允许替换的。使用结构,可以指定字段如何在内存中布局,Visual C#.NET程序设计基础教程 第3章,3.3 定义类成员,成员定义 所有成员都有自己的访问级别,用下面的关键字之来定义:public成员可以由任何代码访问。private成员只能由类中的代码访问 internal成员只能由定义它的工程内部的代码访问。proteded成员只能由类或派生类中的代码访问。,Visual C#.NET程序设计基础教程 第3章,定义字段,字段用标准的变量声明格式和前面介绍的修饰符来声明 字段也可以使用关键字readonly,表示这个字段只能在执行构造函数的过程中赋值,或由初始化赋值语句赋值。字段可以使用static关键字声明为静态 可以使用关键字const来创建一个常量,Visual C#.NET程序设计基础教程 第3章,定义方法,方法使用标准函数格式,以及可访问性和可选的static修饰符来声明 可以在方法定义中使用下述关键字:virtual方法可以重写。abstract方法必须重写(只用于抽象类中)。override方法重写了一个基类方法(如果方法被重写,就必须使用该关键字)。extern方法定义放在其他地方。,Visual C#.NET程序设计基础教程 第3章,定义属性,属性定义的方式与字段定义的方式类似,但包含的内容比较多。属性拥有两个类似函数的块,一个块用于获取属性的值,另一个块用于设置属性的值。这两个块分别用get和set关键字来定义,可以用于控制对属性的访问级别。可以忽略其中的一个块来创建只读或只写属性属性的基本结构:public string SomeProperty get return This is the property value;set/do whatever needs to be done to set the property,Visual C#.NET程序设计基础教程 第3章,3.3.2 类成员的其他议题,隐藏基类方法调用重写或隐藏的基类方法,Visual C#.NET程序设计基础教程 第3章,接口的实现,接口成员的定义与类成员的定义也相似,但有几个重要的区别:不允许使用访问修饰符,所有的接口成员都是公共的 接口成员不能包含代码体。接口不能定义字段成员。接口成员不能用关键字static,virtual,abstract或sealed来定义。,Visual C#.NET程序设计基础教程 第3章,在类中实现接口,执行接口的类必须包含该接口所有成员的执行代码,且必须匹配指定的签名,并且必须是公共的。可以使用关键字virtual或abstract来执行接口成员,但不能使用static或const,继承一个实现给定接口的基类,就意味着派生类隐式地支持这个接口,Visual C#.NET程序设计基础教程 第3章,3.4类的更多内容,运算符重载 要重载运算符,可给类添加运算符类型成员。指定了要处理多少个操作数,以及这些操作数的类型。一般情况下,操作数的类型与定义运算符的类类型相同,但也可以定义处理混合类型的运算符下述运算符可以重载:一元运算符:+,-,!,+,-,true,false 二元运算符:+,-,*,/,%,|,比较运算符:=,!=,=,Visual C#.NET程序设计基础教程 第3章,转换运算符,还可以定义类型之间的隐式和显式转换。如果要在不相关的类型之间转换,这是必须的,Visual C#.NET程序设计基础教程 第3章,3.4.3 高级转换,封箱和拆箱 封箱(boxing)是把值类型转换为System.Object类型,或者转换为由值类型执行的接口类型。拆箱(unboxing)是相反的转换过程 封箱是在没有用户干涉的情况下进行的,但拆箱一个值需要进行显式转换,即需要进行数据类型转换封箱非常有用,有两个原因。它允许使用集合中的值类型,集合中项目的类型是object有一个内部机制允许在值类型上调用object,Visual C#.NET程序设计基础教程 第3章,is运算符,is运算符可以检查未知的变量(该变量能用作对象参数,传送给一个方法)是否可为约定的类型,如果可以进行转换,该值就是true。在对对象调用方法前,可以使用该运算符查看执行该方法的对象的类型。is运算符不会检查两个类型是否相同,但可以检查它们是否兼容。is运算符的语法如下:is 这个表达式的结果如下:如果是一个类类型,而也是该类型,或者它继承了该类型,或者它封箱到该类型中,则结果为true。如果是一个接口类型,而也是该类型,或者它是实现该接口的类型,则结果为true。如果是一个值类型,而也是该类型,或者它被拆箱到该类型中,则结果为true。,Visual C#.NET程序设计基础教程 第3章,as运算符,as运算将使用下面的语法,把一种类型转换为指定的引用类型:as 这只适用于下列情况:的类型是类型 可以隐式转换为类型 可以封箱到类型.中如果不能从显式转换为,则表达式的结果就是null。从基类到派生类之间的转换可以显式进行,但这常常是无效的。,Visual C#.NET程序设计基础教程 第3章,3.4.4 深度复制,使用受保护的方法()进行引用复制,使用一个方法GetCopy()通过GetCopy()得到的引用复制有一个字段,它引用的对象与源对象相同。修改GetCopy()方法就可以进行深度复制,但最好使用.NET Framewok的标淮方式。实现ICloneable接口,该接口有一个方法Clone(),这个方法不带参数,返回一个对象类型,其签名和GetCopy()方法相同。,Visual C#.NET程序设计基础教程 第3章,3.4.5 定制异常,.NET框架提供了一种用于报告错误的标准机制,称之为结构化异常处理(SEH,Structured Exception Handling)。异常是描述错误的类。.NET架使用异常来报告错误,并且在代码中也可以使用异常。编写代码来监视任何代码段生成的异常。在处理异常时要标识三个代码块:使用异常处理的代码块;在处理第一个代码块时,如果找到某个异常,就执行代码块在处理完异常之后执行选择的代码块。,Visual C#.NET程序设计基础教程 第3章,3.4.5 定制异常,在C#中,异常的生成称之为抛出(throwing)异常。被通知抛出了一个异常则称之为捕获(catching)异常处理完异常之后执行的代码块是终结(finally)代码块,Visual C#.NET程序设计基础教程 第3章,指定异常处理,C#的关键字try指定让某个代码块监视代码执行时抛出的任何异常。使用try关键字很简单。使用时,try关键字后面跟一对花括号,花括号中的语句用来监视代码执行时抛出的异常。try/place satements here 在执行try代码块中的任何语句时,如果有异常抛出,就可以在代码中捕获该异常并相应进行处理。,Visual C#.NET程序设计基础教程 第3章,捕获异常,最简单形式的catch代码块捕获前面try代码块中代码抛出的任何异常。catch代码块的结构类似try代码块:try/place statements herecatch/place statements here,Visual C#.NET程序设计基础教程 第3章,捕获特定类的异常,try/place statements herecatch(Exception thrownException)/palce statements here,Visual C#.NET程序设计基础教程 第3章,出现异常之后进行消除,try/open files/read filescatch/catch exceptionsfinally/close files,Visual C#.NET程序设计基础教程 第3章,由.NET框架定义的异常,OutOfMemoryException异常StackOverflowException异常NullReferenceException异常TypeInitializationException异常InvalidCastException异常ArrayTypeMismatchException异常IndexOutOfRangeException异常DivideByZeroException异常0verflowException异常,Visual C#.NET程序设计基础教程 第3章,使用自定义的异常,System.Exception类包含四个只读属性,在catch代码块中可以使用这些属性来获取有关抛出的异常的更多信息:Message属性包含对异常原因的描述。InnerException属性包含引起抛出当前异常的异常。StackTrace属性包含一个字符串,用它来显示抛出异常时正在使用的方法调用的堆栈。最后,堆栈服踪将跟踪所有返回CLR原始调用的路线至应用程序的Main()方法、TargetSite属性包含抛出异常的方法,Visual C#.NET程序设计基础教程 第3章,抛出自定义的异常,可以用C#的throw关键字抛出自定义的异常。throw关键字后面必须跟一个表达式,该表达式的值为类System.Exception或者其派生类的一个对象。,Visual C#.NET程序设计基础教程 第4章,第4章 Windows程序设计,本章我们将进行:各种基本控件的使用和属性、以及相应事件的处理用以解释概念的诸多小程序学以致用的大量练习,Visual C#.NET程序设计基础教程 第4章,例4.1:图片框上的单击事件。,要点:单击事件,消息显示。,private void pictureBox1_Click(object sender,EventArgs e)MessageBox.Show(图像显示程序1.0n张飞,about);,Visual C#.NET程序设计基础教程 第4章,项目中的主要文件,Visual C#.NET程序设计基础教程 第4章,练习,请用文本阅读器(记事本)打开项目中的.resx文件,能不能找到导入的图片在什么地方。请用记事本打开项目文件浏览一下。PictureBox能导入哪些类型的文件?,Visual C#.NET程序设计基础教程 第4章,例4.3:改变Label的背景色。要求:在CheckBox被选中时才能生效。,要点。CheckBox的使用,Label背景色的改变。,if(checkBox1.Checked=true)label1.BackColor=Color.Red;,Visual C#.NET程序设计基础教程 第4章,问题一,程序段if(checkBox1.Checked=true)label1.BackColor=Color.Red;能否改写为if checkBox1.Checkedlabel1.BackColor=Color.Red;,Visual C#.NET程序设计基础教程 第4章,问题二,private void button1_Click(object sender,EventArgs e)if(checkBox1.Checked)if(label1.BackColor=Color.Red)label1.BackColor=Color.Blue;elselabel1.BackColor=Color.Red;elseMessageBox.Show(你没有选中复选框);,这段代码的行为是什么?,Visual C#.NET程序设计基础教程 第4章,例4.4:假设需要给班上同学打综合评定分。因此,每一个同学都是一个对象,含有数据姓名(name)和评定分(score)。为了给一个同学增加评定分,给另外一个同学减少评定分,我们还需要两个方法:GiveScore和TakeOffScore。因此,一个对象的类图应该是这样的。如果有两个学生:张飞(zhangfei)和刘备(liubei)。需要给张飞加分应该使用zhangfei.GiveScore(5),给刘备减分使用liubei.TakeOffScore(5),Visual C#.NET程序设计基础教程 第4章,新建一个GUI项目。在解决方案资源管理器中点击右键,在该项目下新增一个类,命名为“Student”。,Visual C#.NET程序设计基础教程 第4章,2.键入代码public class Studentpublic string Name;public int Score;public int GiveScore(int amount)if(amount 0)Score+=amount;return amount;elseMessageBox.Show(加分:+amount+不是一个合理值);return 0;public int TakeOffScore(int amount)if(Score=amount,Visual C#.NET程序设计基础教程 第4章,在Form1.cs中public partial class Form1:Form后键入代码public partial class Form1:FormStudent zhangfei,liubei;public void UpdateForm()label3.Text=zhangfei.Name+有+zhangfei.Score+分;label4.Text=liubei.Name+有+liubei.Score+分;,Visual C#.NET程序设计基础教程 第4章,创建并初始化zhangfei和刘备两个对象public Form1()InitializeComponent();zhangfei=new Student();liubei=new Student();zhangfei.Name=zhangfei;zhangfei.Score=100;liubei.Name=liubei;liubei.Score=100;UpdateForm();,Visual C#.NET程序设计基础教程 第4章,接下来,需要处理按钮单击事件,在给张飞加分的按钮上双击,输入代码private void button1_Click(object sender,EventArgs e)zhangfei.GiveScore(5);UpdateForm();,Visual C#.NET程序设计基础教程 第4章,给刘备减分的按钮上双击,输入代码private void button2_Click(object sender,EventArgs e)liubei.TakeOffScore(3);UpdateForm();完毕,Visual C#.NET程序设计基础教程 第4章,响应键盘上的按键,例4.5:窗体上放置一个Label,当按下键盘上的方向键的时候,Label就往相应方向移动。,private void Form1_KeyDown(object sender,KeyEventArgs e)if(e.KeyCode=Keys.Left)label1.Left-=3;,Visual C#.NET程序设计基础教程 第4章,TextChanged事件,指出下面代码中的错误private void textBox1_TextChanged(object sender,EventArgs e)textBox1.Text=textBox1.Text+a;,Visual C#.NET程序设计基础教程 第4章,打开文件对话框,例4.6:通过打开文件对话框选定图像文件,并显示在图像框(PictureBox)中,private void btnSelectPicture_Click(object sender,EventArgs e)if(ofdSelectPicture.ShowDialog()=DialogResult.OK)picShowPicture.Image=Image.FromFile(ofdSelectPicture.FileName);this.Text=图像查看器(+ofdSelectPicture.FileName+);private void btnQuit_Click(object sender,EventArgs e)this.Close();,Visual C#.NET程序设计基础教程 第4章,如何获知一个窗体中有哪些控件,例4.7:让窗体上一组组件同时移动。程序界面如图所示,一点击按钮,窗体上的四个标签就会同时向右移动一点。,Visual C#.NET程序设计基础教程 第4章,public partial class Form1:Formpublic Form1()InitializeComponent();private void button1_Click(object sender,EventArgs e)for(int i=0;i;i+)if(this.Controlsi is Label)this.Controlsi.Left=(this.Controlsi.Left+2)%100;,Visual C#.NET程序设计基础教程 第4章,如何获得当前光标的位置。,private void Form1_MouseDown(object sender,MouseEventArgs e)这样一段代码中,光标相关的信息都放在参数e中。sender总是一个对于事件引发源的引用,一般情况下,我们不需要关心。第二个参数e,我们常用的信息有:,Visual C#.NET程序设计基础教程 第4章,一个窗体的初始位置,在一个窗体刚被打开的时候,究竟显示在屏幕的什么地方,我们可以通过设置窗体的startPosition属性来决定。,Visual C#.NET程序设计基础教程 第4章,最小化窗体,可以使用以下代码使窗体最小化:this.Windowstate=FormWindowstate.Minimized;其中,对Windowstate的赋值可以决定窗体在出现的时候是最大化还是最小化的,或者保持普通状态。,Visual C#.NET程序设计基础教程 第4章,让窗体最小化的时候不在任务栏出现,设置窗体的ShowInTaskbar属性为false。这时候,仍然可以通过Alt-Tab将窗体应用程序显示出来。,Visual C#.NET程序设计基础教程 第4章,显示多个窗体,在工程中添加一个新的窗体,窗体默认将被命名为Form2。private void button2_Click(object sender,EventArgs e)Form2 newform=new Form2();newform.ShowDialog();/newform.Show();上面代码将显示窗体2,其中ShowDialog()用于显示模式对话框,意味着窗体2总是出现在窗体1的上面,除非窗体2被关闭,否则没有办法回到窗体1。而采用Show方法便不具备这种效果。,Visual C#.NET程序设计基础教程 第4章,关闭一个窗体,我们有两种方法。一种是采用this.Close()方法,这种情况下,该窗体占用资源将被释放;另一种是采用this.Hide()方法,这 种方法和采用this.Visible=false差不多,只是将窗体隐藏起来了,我们仍然可以通过代码访问到窗体中的数据,Visual C#.NET程序设计基础教程 第4章,窗体中控件相对窗体的布局方式,当窗口大小被改变时,Visual C#.NET程序设计基础教程 第4章,设置一下右侧两个按钮的Anchor属性为Top,Right。这个意思是在窗体大小改变的时候,控件距离窗体的上段(top)和右端(right)的距离为一常数。当然,这个常数在你设计界面的时候就已经被IDE自动设置好了。,Visual C#.NET程序设计基础教程 第4章,多文档界面(MDI Forms),新建项目,将项目命名为MDI Example设置窗体属性如下this.IsMdiContainer=true;this.Name=MDIParent;this.Text=MDI Parent;,Visual C#.NET程序设计基础教程 第4章,在项目中添加两个窗体,将窗体类文件名为为Child1Form.cs和Child2Form.cs。Child1Form中设

    注意事项

    本文(VisualC#.NET程序设计基础教程.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开