当前位置:
文档之家› GUI(图形用户界面)设计基础
GUI(图形用户界面)设计基础
创建 WinForms应用程序
基础核心命名空间 using System; 提供了大量绘图工具的访问权限 using System.Drawing; ArrayList、BitArray、Hashtable、Stack、 using System.Collections; StringCollection 和 StringTable 类 using ponentModel; using System.Windows.Forms; 大量窗体和控件 namespace SampleProject { /// <summary> /// Form1 的摘要说明。 /// </summary> public class Form1 : System.Windows.Forms.Form { /// <summary> /// 必需的设计器变量. /// </summary>
认识窗体类
Form 类:.NET 预定义的窗体类
Form1 继承自 Form
冒号表示继承 Form类定义了窗体的基本属 性和行为 我们创建的窗体都继承自 Form类 构造函数 Form1具有相应的属性和行为 做一些初始化的工作 编译器自动调用
// Form1.cs namespace MyForm { public partial class Form1 : Form { public Form1() { InitializeComponent(); } } }
C# windows程序设计
成都大学信息科学与技术学院软件工程系
课程介绍
课程简介
本课程介绍使用 C# 开发 Windows 应用程序所需 的知识和技能 掌握基本的C#语法 掌握数据库的基本知识 掌握面向对象的编程思想 能够使用Visual 图形化界面开发环境
预备知识
动态调整窗体中控件的位置
(1)禁止窗体大小变化(不灵活) (2)根据窗体大小变化比例动态调整控件的位置
public Form1() { InitializeComponent(); int count = this.Controls.Count * 2 + 2; float[ ] factor = new float[count]; int i = 0; factor[i++] = Size.Width; factor[i++] = Size.Height; foreach (Control ctrl in this.Controls) { factor[i++] = ctrl.Location.X / (float)Size.Width; factor[i++] = ctrl.Location.Y / (float)Size.Height; ctrl.Tag = ctrl.Size; } Tag = factor; }
(3)通过代码设置窗体的尺寸 这种形式一般为程序运行期间设置窗体的大小 。 例如:用窗体显示位图文件 讲窗体大小修改为200×200像素
private void button1_Click(object sender, EventArgs e) { this.ClientSize = new System.Drawing.Size(200, 200); }
窗体的重要属性
Name :窗体对象的名字,类似于变量的名字 BackColor :窗体的背景色 ShowInTaskBar :设置窗体是否出现在任务栏 StartPosition :窗体第一次出现时的位置 Text :窗体标题栏显示的文字 TopMost :设置窗体是否为最顶端的窗体 WindowState :窗体出现时最初的状态(正常、最大化、最小化)
我们需要做的:
针对我们感兴趣的事件,编写相应的事件处理程序
事件驱动编程
事件处理器参数
窗体的重要事件
窗体有哪些事件?
Load :窗体加载事件 MouseClick :鼠标单击事件 MouseDoubleClick :鼠标双击事件 MouseMove :鼠标移动事件
为什么使用事件
Windows 系统中处处是事件:
鼠标按下、鼠标释放、键盘键按下……
Windows 系统通过事件处理来响应用户的请求
事件触发 单击 事件响应的结果 显示开始菜单
双击
我的电脑 窗口打开
事件驱动
Windows 通过随时响应用户触发的事件做出相应 的响应——事件驱动机制
WinForms 应用程序也是事件驱动的
课程要求
课时:56课时
讲解内容
WinForm窗体介绍 WinForm窗体基本操作 WinForm控件的使用 对话框编程 菜单栏、工具栏、状态栏 的使用
Windows线程程序设计 文件操作 数据库访问程序设计 (C/S程序设计)
GDI+图形图像处理 网络编程
为什么要使用窗体
KeyDown :键盘按下事件
KeyUp :键盘释放事件 ……
通用验证方法
用于验证文本框中输入的数据是否有效
static class Validation { public static void IsInteger(object sender, CancelEventArgs e) { TextBox a = sender as TextBox; int s; if (!int.TryParse(a.Text, out s)) { MessageBox.Show("请输入整形数据","计算器"); e.Cancel = true; } } }
从 System.Windows.Forms.Form 派生
Visual Studio .NET 生成的代码
创建 WinForms应用程序 6-4
private ponentModel.Container components = null; 项目的容器 public Form1() { // // Windows 窗体设计器支持所必需的 // InitializeComponent(); // // TODO:在 InitializeComponent 调用之后 添加任何构造函数代码 // } private void InitializeComponent() { 构造函数调用 InitializeComponent() 方法 ponents = new ponentModel.Container(); this.Size = new System.Drawing.Size(300,300); this.Text = "Form1"; }
进一步认识窗体文件
WinForms 窗体有两种编辑窗口:
窗体设计器窗口 窗体代码编辑窗口
为什么使用partial
为了安全,两把钥匙分开放置 具有双钥匙的密码箱 第一把钥匙
用 partial 将同一个窗体的代码分开放在两个文件中: 一个存放 VS 自动生成的代码 只有两把钥匙同时使用才能打开密码箱 一个存放我们自己编写的代码 第二把钥匙
form1类从S.W.F.Form类继承行为
认识 WinForms
解决方案名称
项目名称
我们编写代码的文件
主程序文件, 包含Main方法
窗体设计器代码文件, 代码为VS自动生成
启动窗体
Main 方法
位于 Program.cs 文件 Windows程序的入口
// Program.cs namespace MyForm { static class Program VS 自动生成 { Main 方法, 一般不需要理会 …….. 程序的入口 static void Main( ) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } }
创建 WinForms应用程序 6-5
/// <summary> /// 清理所有正在使用的资源。 /// </summary> protected override void Dispose( bool disposing ) { if( disposing ) { if(components != null) { components.Dispose(); } } base.Dispose( disposing ); } 释放系统资源
private void button2_Click(object sender, EventArgs e) { textBox1.Validating += new CancelEventHandler(Validation.IsInteger); textBox2.Validating += new CancelEventHandler(Validation.IsInteger); }
简单
强大
方便 灵活 ……
什么是窗体
Windows 操作系统中,处处是窗体
GUI编程概述
.NET的功能和编程特点
Visual Studio 2008 IDE
VS解决方案和项目的组织结构
.解决方案和项目文件
.sln、.suo、.cs、.csproj、.aspx、.asmx、.resx 等。
解决方案和项目文件
扩展名 .cs .sln .aspx .suo .csproj 描述 Visual C#源程序文件 表示属于单个项目的窗体、 用户控件、类和模块文件。 Visual Studio解决方案文件 组织解决方案中的 项目、项目子项和其他子项。 Web项目文件 表示 Web 项目子项文件。 解决方案用户选项文件 记录所有可能和解决方 案相关的选项。 Visual C#项目文件 表示属于多个项目的窗体、 用户控件、类和模块文件。