Windows窗体学这一篇就够了(C#控件讲解)

目录

一、Form窗体

1.1窗体的创建和删除

1、添加窗体

2、删除窗体

3、多窗体的使用

1.2、窗体属性

1.2.1更换窗体图标

1.2.2隐藏窗体的标题栏(FormBorderStyle属性)

1.2.3控制窗体的显示位置(StartPosition属性)

1.2.4窗体背景图片的设置

1.2.5窗体的显示与隐藏

1.3窗体的事件

1.3.1单击事件(Click)

 1.3.2加载事件(Load)

1.3.3关闭事件(FormClosing)

补、为何关闭了窗口了但下次启动时却显示还在运行

 二、MDI窗体

 2.1设置MDI窗体

2.1.1设置父窗体

2.1.2设置子窗体

2.2排列MDI子窗体

三、窗体控件

1.1控件的概述

1.2控件的相关操作

2.1文本控件

2.1.1Label控件

2.1.2Button控件

2.1.3TextBox控件

2.1.4RichTextBox控件

超链接样式

richTextBox文本框设置

3.1选择类控件

3.1.1ComboBox控件

添加元素:分为手动和代码添加。

设置下拉样式(DropDownStyle)

3.1.2CheckBox控件

3.1.3RadioButton单选按钮

1、判断单选按钮是否被选中

2、响应单选按钮选中状态更改事件

3、单选按钮分组

3.1.4NumericUpDown控件

1、最大值/最小值设置

2、获取NumericUpDown控件中显示的数值

3、设置NumericUpDown控件中数值的显示方式

3.1.5ListBox控件

1、在ListBox控件中添加和移除项

2、创建总显示滚动条的列表控件

3、在ListBox控件中选择多项

4.1分组控件

4.1.1Panel控件

4.1.2GroupBox控件

​编辑

 4.1.3TabControl控件

1、选项卡图片显示样式

2、鼠标移入时弹出提示信息

​编辑

3、将选项卡显示为按钮样式

 4、在选项卡中添加控件

5.1菜单、工具栏和状态栏控件

5.1.1MenuStrip控件

5.1.2弹出式菜单(ContextMenuStrip)

5.1.3ToolStrip控件 (工具栏)

5.1.4StatusStrip控件(状态栏)

6.1.1ImageList控件(图片集)

1、ImageList控件代码添加图片

 2、在ImageList控件中通过代码移除图片

7.1PictureBox控件(图片展示)

PictrueBox控件显示图片

8.1Timer控件(计时器)

1、Timer控件的常用属性、方法和事件

​编辑​编辑

 2、计时器Timer实现时间改变

 9.1ListView控件(带图标的选项列表)

1、在ListView控件中添加、移除项

1、添加项

2、移除项

2、默认选择控件中的某一项

3、为ListView控件中添加图标

 4、在控件中启用平铺视图

5、为ListView控件中的项分组

 10.1TreeView控件(树状节点)

10.1.1TreeView常用属性和事件

10.1.2添加和删除树节点

1、添加树节点

2、移除节点

10.1.3获取TreeView控件中选中的节点

10.1.4为TreeView控件中的节点设置图标

11.1DateTimePicker控件 (日期时间框)

11.1.1使用DateTimePicker控件显示时间

11.1.2自定义格式显示日期

11.1.3获取控件中选择的日期

12.1MonthCalendar控件(日历控件)

12.1.1MonthCalendar控件显示周数

12.1.2在MonthCalendar控件中显示多个月

 12.1.3在MonthCalendar控件中选择日期范围

13.1ErrorProvider控件(验证文本框输入)

1、验证文本框

 13.2HelpProvider控件(调用帮助文档)

13.3ProgressBar控件(进度条)

一、Form窗体

From窗体也称为窗口,是.NET框架的智能客户技术;

1.1窗体的创建和删除

1、添加窗体

本窗体在Vs中创建可以右击项目名—添加–Windows窗体。一般项目类型都是Windows窗体(.NET Framework)

2、删除窗体

在对应的窗体右击,删除即可

3、多窗体的使用

小白在第一次建立如图多窗体时,在ctrl+F5运行时只展示了一个窗体

https://i-blog.csdnimg.cn/blog_migrate/3601a2458b4a53c3e50b13a71df5ed19.png

那我们可以点击Program.cs在下面添加Application.Run(new 窗体名称());即可启动其他窗体

https://i-blog.csdnimg.cn/blog_migrate/8cb5d779ddef31f10ee7f6e1418d3210.png

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)

单击窗体时,将会触发的事件,如图位置中查找该事件位置,双击进去可设置事件代码

https://i-blog.csdnimg.cn/blog_migrate/193cebc2e5341d6424ba6642feab0891.png

1.3.2加载事件(Load)

窗体在加载时,将会触发的事件,和上图类似位置查找即可,进入编辑也是双击

1.3.3关闭事件(FormClosing)

窗体在关闭时,将会触发的事件,和上图类似位置查找即可,进入编辑也是双击

补、为何关闭了窗口了但下次启动时却显示还在运行

通过我个人情况,在我们使用多窗口,如在Form1窗口的单击事件了加入了对Form2窗体的启动,然后并对Form1窗体进行了隐藏,为此在对Form2窗体进行了X关闭,但其实Form1窗体却还在后台启动。

出现了此问题解决方法:1、最直接的就是重启电脑。2、同时按住Ctrl+shift+esc键打开资源管理器找到对应进程进行关闭。

如何避免此问题:在Form2关闭事件里加入对Form1的关闭。通过Application.Exct();关闭所有窗口

https://i-blog.csdnimg.cn/blog_migrate/fb75a168efc214c65875cd8b27573b20.png

二、MDI窗体

多文档界面(multiple-document interface)简称MDI窗体。MDI窗体用于同时显示多个文档,每个文档显示在给自的窗口中。以上时官方解释,个人理解就是在父窗体中展示多个子窗体。

如下图所示

https://i-blog.csdnimg.cn/blog_migrate/8be37030ac30ac7d0693c1cd8a599e6e.png

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
  • 26
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值