Winform简介
桌面应用程序–ConsoleApp 、WinForm、WPF。–web应用程序而言。
Winform是什么?
.Net开发平台中对Windows From的简称,基于.Net Framework平台的客户端开发技术,一般使用C#编程。
Windows风格的控件,以及事件直接使用,快速开发,Windows窗体。
Windows应用驱动:客户端应用程序,显示信息,输入、网络与远程计算机进行通信。
事件驱动程序–点击窗体上的控件–触发事件–相应的操作
控件:输入的位置、单机的位置、选择的位置、显示的位置。
Windows应用程序 功能–控件 --属性,事件。
创建WinFrom应用程序步骤
创建项目-Windows桌面应用-项目名称、路径、解决方案
界面设计:布局–拖控件
设置属性:外观
编写代码:实现功能
保存项目:实时保存
运行
winForm介绍
输入或操作的对象、属性、方法、事件。
属性–外观 方法–功能 事件–行为
特征:可视化,与用户进行交互,属性和方法,事件 可供开发人员使用,可发布和重用
控件开发
- 复合控件:各种控件组合起来,形成一个控件
- 扩展控件:现有控件上派生出的一个新控件,为原有的控件增加新的功能
- 自定义控件:Control类派生,提供入门性能,现有控件无法满足需求,提供入门性能
分类
一般控件
- Button按钮
- RadioButton单选按钮
- CheckBox复选框
- ComboBox下拉框
- CheckedListBox带复选框的列表项
- DateTimePicker日期时间选择控件
- ListBox 列表项
- ListView 已五种不同视图显示项的集合
- MaskedTextBox 格式化文本框
- MonthCalendar 月历
- NumbericUpDown 可以增减数值的显示框
- PictureBox 图像控件
- ProgressBar进度条
- RichTextBox 高级文本框
- TreeView树形控件
容器
- GroupBox分组控件,可以设置标题
- panel分组控件 可以显示滚动条
- TabControl选项卡控件
- SplitContainer 面板控件
菜单
- ContextMenuStrip 右键菜单
- MenuStrip菜单栏
工具栏
- ToolStrip工具栏
- StatusStrip状态栏
数据
DataGridView数据显示
DataSet内存缓存
组件
- Timer计时器
- ImageList图像集合
数据、菜单和工具、组件、打印
program.cs文件
internal static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]//COM线程模型--单线程单元,如果没有他是无法工作
static void Main()
{
//System.Windows.Forms.Application
//提供一系列静态方法和属性来管理应用程序
//启用应用程序的可视样式,一般写在第一句
Application.EnableVisualStyles();
//将CompatibleTextRendering设置为false,默认值
Application.SetCompatibleTextRenderingDefault(false);
//指定应用程序启动的第一个窗体
Application.Run(new Form1());
}
}
项目结构
- sln文件,解决方案文件,位置引用
- 项目文件夹
- bin文件夹存放编译结果,exe文件,debug调试,release发布
- obj object编译过程中生成的中间临时文件。加快编译速度
- csproj文件 项目文件,位置引用,双击打开项目
- 窗体文件
- Form.cs源代码
- Form.Designer.cs窗体布局代码,自动生成对应的控件代码
- Form.resx 窗体资源
Form介绍
可视化的图画,显示信息。通常通过添加控件和开发用户操作的响应。
继承于Form–System.Windows.Forms.Form
先执行InitiaizeComponent();窗体初始化操作,在执行load事件。
标签文本按钮
- Label 一般显示不能编辑的文本或图像
- Name 名称
- Text 设置或获取文本信息
- Image显示图像
- ImageList图片集控件
- Size Width Height
- Tag 与控件相关的自定义数据
- Enabled 是否启用
- Location 位置 坐标
- TextBox文本框 单行,多行 输入或获取数据
- MultiLine是否多行
- WordWrap是否自动换行
- PasswordChar *
- 方法AppendText指定文本追加到文本框尾部;Clear()清除、Focus()获取焦点、
- Button 按钮控件、执行命令的、最常用的控件
- BackgroundImage 背景图片
- Image 图片
- BackColor 背景颜色
- ForeColor文字颜色
- Visible 是否显示
- RadioButton单选按钮,一组单选按钮中只能选择其中一个
- Checked是否选中
- AutoCheck自动更改其他RadioButton的选中状态,true
- 事件:CheckedChanged选中状态改变时发生
- CheckBox复选框
- 一组复选框可以选择多个项
- AutoCheck单击时自动更改选择状态,true不要修改
- 三种选择状态:未选中,check选中,Indeterminate中间状态
- ThreeStatus控制CheckBox三种状态还是两种。
- ListBox列表框
- 常用绑定方式
- DataSource
- DisplayMember
- ValueMember
- 常用绑定方式
- ComboBox下拉框,组合框选一个
- NumbericUpDown控件
- 数字显示框、向上、下按钮、来增加减少显示的数值
- 方法:UpButton(),DownButton()
- 事件:ValueChange
- 数字数据,通过控件来调整值
- PictureBox控件
- 图像控件显示图像
- 事件 Click
- RichTextBox 富文本框,高级的文本输入和编辑功能
- RichTextBox
- 加载文件
- 保存 rtf文件
- 超链接 LinkClicked事件
- 插入图片
- 加粗,居中
- Timer控件
- 计时器,间隔时间,每隔这个间隔时间就会引发事件
- System.Window.Forms.Timer Windows应用程序,独占一个线程,可以修改UI元素,基于UI的介绍
- 如果单次执行时间超过间隔时间,会影响下次触发,精度很差
- 动态时间显示,如果是Windows应用程序,System.Windows.Forms.TImer首选
- System.Timers.timer基于服务计时器,轻量级
- 时间间隔,触发Elapsed事件–执行操作,不是由Ui线程执行的
- 不可以直接修改UI元素
- 可以通过UI元素的invoke()完成,委托里修改UI元素–修改UI元素
- 停止–stop
- Forms.Timer UI线程执行,可以直接修改UI元素
- 耗时操作,不会使UI失去响应,不会影响下一次触发
- System.Threading.Timer基于线程
- 多线程,计时器,轻量级,精度高
- 提供以指定的时间间隔对线程池程序执行方法的机制
- 单次运行时间过长,并不会影响下次触发,回调方法执行操作
- 不可以直接修改UI元素,也不是由UI线程上运行,UI元素的invoke()来实现
- ProgressBar控件,显示摸个操作的进度
- ImageList控件 图片集合,用来存储图像资源,并在关联空间中显示出来
- ListView 控件
- 列集合、组集合、项集合
- 添加、移除、存在、清空、索引访问、指定位置处插入