目录
1.2.2隐藏窗体的标题栏(FormBorderStyle属性)
1.2.3控制窗体的显示位置(StartPosition属性)
一、Form窗体
From窗体也称为窗口,是.NET框架的智能客户技术;
1.1窗体的创建和删除
1、添加窗体
本窗体在Vs中创建可以右击项目名—添加–Windows窗体。一般项目类型都是Windows窗体(.NET Framework)
2、删除窗体
在对应的窗体右击,删除即可
3、多窗体的使用
小白在第一次建立如图多窗体时,在ctrl+F5运行时只展示了一个窗体
那我们可以点击Program.cs在下面添加Application.Run(new 窗体名称());即可启动其他窗体
1.2、窗体属性
1.2.1更换窗体图标
在属性面板上选择Icon属性,即可更换图标。但图片格式需要是ico。
1.2.2隐藏窗体的标题栏(FormBorderStyle属性)
FormBorderStyle属性及说明
属性值说明属性值说明Fixed3D固定的三位边框None无边框FixedDialog固定的对话框样式Sizable可调整大小的边框FixedSingle固定的单行边框SizableToolWindow可调整大小的工具窗口边框FixedToolWindow不可调整大小工具窗口边框
1.2.3控制窗体的显示位置(StartPosition属性)
StartPosition属性及说明
属性值说明CenterParent窗体在其父窗体居中CenterScreen窗体在当前显示窗口中居中,其尺寸在窗体大小中指定Manual窗体的位置有Location属性确定WindowsDefaultBounds窗体定位在windows默认位置,其边界也由Windows默认决定WindowsDefaultLocation窗体定位在windows默认位置,其尺寸在窗体大小中指定
1.2.4窗体背景图片的设置
通过设置BackgroundImage属性可以设置背景,背景样式的属性则通过BackgroundImageLayout设置
BackgroundImageLayout属性及说明
属性值说明Tile(默认)背景图片重复None背景图片左边显示None的同时RightToLeft属性设置为Yes背景图片右边显示Center背景图片居中显示Stretch背景图片拉申Zoom背景图片按比例放大到合适大小
1.2.5窗体的显示与隐藏
Form1 f=New Form1();//实例化对象
f.show(); //show()用于显示
f.Hide(); //Hide()用于隐藏
1.3窗体的事件
1.3.1单击事件(Click)
单击窗体时,将会触发的事件,如图位置中查找该事件位置,双击进去可设置事件代码
1.3.2加载事件(Load)
窗体在加载时,将会触发的事件,和上图类似位置查找即可,进入编辑也是双击
1.3.3关闭事件(FormClosing)
窗体在关闭时,将会触发的事件,和上图类似位置查找即可,进入编辑也是双击
补、为何关闭了窗口了但下次启动时却显示还在运行
通过我个人情况,在我们使用多窗口,如在Form1窗口的单击事件了加入了对Form2窗体的启动,然后并对Form1窗体进行了隐藏,为此在对Form2窗体进行了X关闭,但其实Form1窗体却还在后台启动。
出现了此问题解决方法:1、最直接的就是重启电脑。2、同时按住Ctrl+shift+esc键打开资源管理器找到对应进程进行关闭。
如何避免此问题:在Form2关闭事件里加入对Form1的关闭。通过Application.Exct();关闭所有窗口
二、MDI窗体
多文档界面(multiple-document interface)简称MDI窗体。MDI窗体用于同时显示多个文档,每个文档显示在给自的窗口中。以上时官方解释,个人理解就是在父窗体中展示多个子窗体。
如下图所示
2.1设置MDI窗体
在MDI窗体中,起容器作用的窗体称为父窗体,可放在父窗体中的其他窗体称为子窗体,也称为MDI子窗体。
2.1.1设置父窗体
要将某个窗体设置为父窗体,只要在窗体属性面板中将IsMdiContainer属性设置为True即可。
2.1.2设置子窗体
设置完父窗体后,在父窗体的启动事件中通过MdiParent属性来确定子窗体。代码案例如下
private void Form1_Load(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.Show();
frm2.MdiParent = this; //展示在父窗口form1中,this表示本窗格
}
2.2排列MDI子窗体
如果一个MDI窗体中有多个子窗体同时打开,假如不调整其排列顺序,界面将会非常混乱,不宜浏览。可通过MdiLayout枚举进行设置。
MdiLayout枚举值
枚举值说明ArrangeIcons排列所有MDI子窗口图标Cascade所有MDI子窗口层叠排列TileHorizontal水平平铺子窗口TileVerttical垂直平铺窗口
案例代码如下
LayoutMdi(MdiLayout.TileHorizontal);//水平平铺
LayoutMdi(MdiLayout.TileVertical);//垂直排列
三、窗体控件
1.1控件的概述
常用控件包括文本控件、选择控件、分组控件、菜单控件、工具栏控件以及状态栏控件
常用控件的作用
控件分类作用文本控件文本控件可以在控件上显示文本选择控件主要为用户提供选择的项目分组控件使用分组控件可以将窗体中的其他控件进行分组处理菜单控件为系统制作功能菜单,将应用程序命令分组,使它们更容易访问工具栏控件提供了主菜单中常用的相关工具状态栏控件用于显示窗体上的对象的相关信息,或者可以显示应用程序的信息
1.2控件的相关操作
在此添加和删除控件我将不在叙述,我只说一个锁定控件。完成锁定窗体设置后,为了避免误操作而改变窗体的控件设置,可通过锁定控件对控件进行定位。 在控件的属性窗口中,单击Locked属性,并选择为true即可锁定控件
2.1文本控件
文本类控件主要包括Label控件(标签控件)、Button控件(按钮控件)、TextBox控件(文本框控件)和RichTextBox控件(有格式文本控件)
2.1.1Label控件
**a)概述:**主要用于显示用户不能编辑的文本,也可以通过编写代码来设置要显示的文本信息。
** c)显示/隐藏控件:**通过设置visible属性(true为显示\false为隐藏)
2.1.2Button控件
**a)概述:**允许用户通过单机来执行操作。既可以显示文本,也可以显示图像。
**b)****响应按钮事的单击事件:**单击button按键时引发click事件,执行click事件中的代码。
**c)****将按钮设置为窗体"enter"按钮:**设置窗体的AcceptButton属性,每次按enter键都相当单击此按钮
this.AcceptButton=button1
**d)****将按钮设置为"esc"按钮:**通过设置窗体的CancelButton属性,每次按esc键都相当单击此按钮
this.cancelButton=button1
**补:**如果想实现鼠标移入和移出按钮,改变按钮的样式或字体样式,可以用OnMouseEnter(移入)和OnMouseLeave(移出)事件实现。
2.1.3TextBox控件
** a)概述:**用于获取用户输入的数据或显示文本。文本框控件通常用于可编辑文本,也可使其成为只读控件。文本框可以显示多行,可以对文本换行使其符合控件的大小。
**b)****创建只读文本框:**通过设置ReadOnly属性,就可以设置文本框是否为只读。(代码修改在文件夹)
private void Form1_Load(object sender, EventArgs e)
{
textBox1.ReadOnly = true; //将文本设置为只读
textBox1.Text = "你好世界";
}
**c)创建密码文本框:**通过设置PasswordChar(显示符号可以自行定义)或者UseSystremPasswordChar(显示为’大黑点’)
private void Form1_Load(object sender, EventArgs e)
{
textBox1.PasswordChar = '#'; //设置文本框的密码字符为@
textBox1.UseSystemPasswordChar = true; //此密码字符为大黑点
}
**d)创建多行文本框:**通过设置Multiline属性(true打开,false为关闭)
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Multiline = true; //使其显示多行
textBox1.Height = 20; //设置文本框的行高
}
**e)突出显示文本:**通过设置SelectionStart(起始索引)和SelectionLength(字符长度)属性设置凸显文本(简而言之就是选中状态)
private void Form1_Load