**初识winform**
1、创建一个winform程序。
认识里面的项目组成:
项目名称:
properties :配置文件。
引用: 系统核心类库
App.config :应用配置信息
form1: 主应用程序
form1desiger: 窗体设计器,控件和属性组成
form1.resx: 窗体资源文件
form1 : 写代码的地方,实现各种事件。
Program.cs 应用程序的主入口main方法所在。
2、winform应用程序执行流程。
Program.cs main方法,程序入口。
执行了run()方法
run方法中,创建窗体对象
form1窗体类中: 执行构造方法。
构造方法里面,执行了一个
初始化组件的方法。
InitializeComponent();
在跳转到窗体设计器类:
进行窗体中,各个组件的初始化
给窗体添加控件:
1、如何添加控件:
视图菜单——>工具箱——>找到要添加的控件
当我们添加了控件之后,就会在对应的窗体设计器的类中,InitializeComponent();添加对应组件初始化信息。
//
// button1
//
//控件初始化位置
this.button1.Location = new System.Drawing.Point(0, 0);
// name为按钮控件的引用名字,可以通过名字来找到控件调用
this.button1.Name = "button1";
// 按钮的大小
this.button1.Size = new System.Drawing.Size(137, 96);
// 索引
this.button1.TabIndex = 0;
//文本内容
this.button1.Text = "按钮";
//初始化按钮风格样式。
this.button1.UseVisualStyleBackColor = true;
3、学习控件的事件 (常见的事件:单击,双击,鼠标悬停等)
任何一个控件,只学习两个点:
=1= Button 按钮的以下来个学习内容:
(1)属性:F4打开属性设置
name : 引用名
text : 显示文本内容
location: 在窗体中摆放位置
size : 控件显示大小
font : 设置字体样式大小
size 字体大小
bold 字体加粗显示
字体类型
backCOlor: 设置按钮的背景颜色
backgroundImage: 背景图片设置
从外部资源加载进来
弊端:所有要运行这个应用的电脑
还必须得有外部资源文件。
一种是引入到内部资源表中:
backgroundImageLayout : 背景图片显示效果。
zoom 等比例显示
stretch 拉伸显示
center 居中显示
Enable : 当前控件是否可用。true false
visiable: 控件是否可见 true false
(2)事件:属性窗口旁边 点击闪电图标即为事件窗口
click 事件: 鼠标单击事件。
<1> 如何添加事件: 选择要添加事件的控件——>右键属性
——> 点击上面闪电小图标 添加事件。
其中被默认选中的事件就是该控件最常用事件。
比如button 的常用事件,就是点击事件click事件。
<2> 如何实现事件:
1、双击要实现事件的 控件,
2、在属性窗口中,点击事件按钮——>
双击要实现事件名称
<3> 事件触发要执行的代码编写:
双击要实现事件名称后,会自动在控件所在窗体类中
创建出来一个事件触发后,要执行的方法:
在方法中实现代码功能即可!
例如:button的点击事件
form1类中:
//btn1这个name的按钮,被点击之后,触发单击事件,执行下面点击方法
private void btn1_Click(object sender, EventArgs e)
{ //当我们按钮被点击的时候,我让他给我弹出一个对话框
MessageBox.Show("按钮被点击了!");
}
4、练习,做一个完整的登录页面的显示效果。
form 窗体设置。 起名规则frm
label 标签控件—— 一般用于显示文本 lbl
textBox 控件—— 文本输入框,输入文本或者密码等 txt
comboBox 下拉菜单控件。 cbo
Button 按钮控件。 btn
form 属性:
name 引用名字,frm开头
text 设置显示窗体名字
icon 图标 (图片格式有要求: .ico)
MaximizeBox 设置窗体是否可以最大化 true false
MinimizeBox 设置窗体是否可以最小化 true false
startPosition 设置窗体创建好显示的初始位置。
常用的设置值:CenterScreen 屏幕中央。
label 控件:
设置文本显示
name 引用名 lbl 开头
text 设置显示文字内容
font 属性,设置字体样式效果。
backColor 背景颜色,默认是灰色,系统默认。
可以修改为透明效果,使用父级控件背景。
选择 web 下面,transParent
textBox 控件:
multiline : 显示多行文本框输入效果 true false
passwordChar: 显示设置密码字符。*
UserSystemPasswordChar :
使用系统默认的密码显示效果。true false
MaxLength : 设置文本框输入内容的最大字符长度。
readOnly : 只读属性效果,不可修改
comboBox 下拉输入框:
items 条目内容设置
点击items属性右侧三个小点的按钮。
输入每个条目显示内容
回车换行即为下一条内容。
DropDownStyle simple 设置为下拉菜单输入框展开的状态
DropDown 下拉菜单收起来的情况,可以同时选择,或者输入内容两种方式
DropDownList 只是下拉菜单选择的情况。
5、登录点击事件,校验登录信息非空验证。
登录和取消按钮的事件。
登录——> 点击之后,校验输入的用户名,密码,登录身份不能为空。
核心代码:
当前用户名输入框对象,调用text属性拿到内容
// trim首尾去空字符串。equals判断字符串是否相等
//string.Empty 系统字符串类中的变量,为空或者为null
if (txtUserName.Text.Trim().Equals(string.Empty))
取消——> 实现当前登录窗口关闭效果。
this.close(); //关闭当前的窗口,this是当前窗口的对象。
窗体跳转:
1/ 创建要跳转的窗体对象。
2/ 调用Show() 方法,展示出来。
6、窗体背景变色练习
需求: 希望点击窗体背景的时候,实现颜色的变化。
默认红色,点击一下,——> 蓝色 ——> 黄色——> 红色。
在窗体中,实现 “点击” 的事件:
选中窗体——>属性——> 在属性窗口,选择事件按钮——> 事件中寻找,mouseClick 鼠标点击事件。
双击,即可生成对应事件的方法。
*** 注意: 窗体默认事件,是加载事件。在窗体上直接双击,创建的事件。是load 加载事件。
7、MessageBox对象,show方法详解。
messageBox 是消息弹窗。 调用show 方法,可以展示出来弹窗信息。
案例:在form 窗体上,添加一个按钮,点击按钮之后,能给我弹窗显示MessageBox 窗口提示内容。
public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon);
返回值类型:DialogResult 接收你点击Messagebox 上面的按钮后,触发的结果处理。
参数详解:
string text 弹窗内容
string caption, 弹窗标题
MessageBoxButtons buttons, 弹窗的按钮 MessageBoxButtons.OK
MessageBoxIcon icon 弹窗显示内容前面的图标
8、登录校验,链接数据库。
需求: 通过登录的界面窗口,我们有用户名,密码,登录身份,三个验证项。
需要把用户名,和密码,发送到服务器,进行比对,查看是否有同名的用户名及密码。
有的话,说明该用户可以正常的登录
没有的话,提示用户名或者密码错误,不允许登录。
登录成功之后,跳转到登录成功的窗体
分析步骤:
1、登录界面搭建
2、验证非空逻辑
3、非空之后,访问数据库,校验用户账号密码。
4、处理校验结果,校验成功,即可跳转登录界面。失败,就提示用户名密码错误
9、窗体之间值的传递。
登录成功之后,显示登录用户 欢迎的标题。
需求: 当我们用户登录窗体登录成功之后,跳转到用户的使用软件的界面。
界面的最上面的标题栏,显示出来用户名的欢迎,例如: 欢迎XXX登录成功,使用该软件!!
分析:1窗体中的,变量:用户名 ————————> 2 窗体中, 拿到变量 用户名, 展示到标题栏。
解决方式:
(1)第三方的类,来保存,我们需要的变量,然后让这个变量变为静态变量,
这样就可以直接 第三方类名直接调用。
例如:
class UserName
{
public static string name = "";
public static string info = "";
}
(2)可以直接在 1窗体代码中,声明一个静态的变量,保存该 用户名。
在2 窗体代码中,直接通过1 窗体的类名,调用静态变量,获取该 用户名。
10、记事本应用完整项目操作。
把第二个窗体做成一个记事本。 文本文档。textDocument
需求:实现文本文档两个效果
自动换行效果。 button
保存文本效果。 button
文本内容 textBox