管理杂谈OA答疑ERP答疑教程搜索

基于C#.NET的Windows窗体编程之WinForms控件简介


在前一篇文章《基于.NET的Windows窗体编程之WinForms入门简介》中,我们了解到了Windows窗体编程在如何创建程序,Form页面相关属性和事件,以及如何启动调试程序,今天继续介绍基于.NET的Windows窗体编程中的控件部分,控件是Windows窗体编程过程中常用且十分重要的内容,通过控件可以搭建起程序和用户沟通的桥梁,它不仅可以接收用户的输入,还可以向用户展示计算得到的结果。所以掌握常见控件的功能和用法,对于Winforms窗体编程,将会起到事半功倍的效果。本文主要讲解控件的基础用法,仅供学习分享使用,如有不足之处,还请指正。


控件概述

在.NET UI框架中,将一些常用的功能封装成独立的组件,它封装了组件晦涩难懂的创建过程以及用户界面功能,并且公开相应的属性,用于设置组件呈现形式,以及相应的事件委托,用于处理对用户操作的响应,这就是控件。窗体控件是可复用的,每一个控件实例都表示一个内存中的对象。Windows 窗体不仅提供许多现成的控件,还提供用于开发自己的控件的基础结构。 可以合并现有控件、扩展现有控件或创作自己的自定义控件。


添加控件

在Visual Studio设计器中,添加控件主要有以几种形式:

1. 拖动控件添加:从工具箱中选择需要添加的控件,按住鼠标拖动到需要添加的Form窗体中指定位置,然后松开鼠标即可,如下所示:

2. 双击控件添加:在工具箱中,选择需要添加的控件,然后双击鼠标,即可添加控件到Form窗体的上上角位置,并呈现选中状态,可以手动拖动控件到目标位置,如下所示:

3. 绘图添加,首先在工具箱中选择需要添加的控件,然后在Form窗体中用鼠标拖动选择一个区域,会自动添加控件到Form窗体中,并按照拖动区域的大小填充,如下所示:

4. 代码添加,可以在Form窗体的类文件中,通过编写代码进行动态添加,如下所示:

private void Form1_Load(object sender, EventArgs e){    Label label1 = new Label()    {        Text = "Hello World.",        Location = new Point(1010),        TabIndex = 10    };
    TextBox textBox1 = new TextBox()    {        Location = new Point(10,30),        Width=100,        Height=20,        TabIndex = 11    };
    this.Controls.Add(label1);    this.Controls.Add(textBox1);}

通过调试运行程序,可以发现,控件已经添加到Form1窗体中,如下所示:


控件分类

在Windows窗体开发中,控件是构建用户页面的基础,根据功能,大致可以分为以下几类:


控件布局

在.NET Windows 应用程序开发中,窗体中的控件位置不仅由控件确定,还由控件的父级确定。 主要有以下几种控件位置布局:

固定位置和大小:控件在父级上的位置由控件距离父级左上角的 Location 属性的值确定。 父级控件的左上角位置坐标为 (x0,y0)。 控件的大小由 Size 属性确定,表示控件的宽度和高度。当控件被添加到支持自动定位的父控件时,该控件的位置和大小会发生改变。 在这种情况下,可能无法手动调整控件的位置和大小,具体取决于父级的类型。

边距和填充:Margin 属性定义控件周围的空间,该空间使其他控件与控件的边框保持指定距离。Padding 属性定义控件内部的一段空间,用于将控件的内容(例如,其 Text 属性的值)保持在距控件边框一定的距离。

停靠(Dock),属性可设置控件的哪个边与父级的对应边对齐,以及如何在父级中调整控件的大小。Dock属性要一个枚举类型,它有5个值,设置后效果如下:

当控件停靠时,容器会确定其应占用的空间,调整控件的大小并进行定位。 基于停靠样式,仍采用控件的宽度和高度。 例如,如果将控件停靠在顶部,则采用控件的 Height,但自动调整 Width。 如果将控件停靠在左侧,则采用控件的 Width,但自动调整 Height。控件的Location无法手动设置,因为停靠控件会自动设置位置。

控件的 Z-order 会影响停靠。 对停靠后的控件进行布局时将占用可用空间。 例如,如果控件首先被绘制并停靠在顶部,它就会占据容器的整个宽度。 如果下一个控件被停靠在左侧,则该控件的可用垂直空间较少。

如果控件的 Z-order 倒置,停靠在左侧的控件将拥有更多的初始可用空间。 该控件使用容器的整个高度。 停靠在顶部的控件具有较少的水平空间。

随着容器增大和缩小,停靠在容器上的控件将重新定位并调整大小,以保持其位置和大小处于适当状态。

如果多个控件停靠在容器的同一侧,则根据其 Z-order 将其堆叠。

锚点(Anchor),通过定位控件,可将控件绑定到父级容器的一侧或多侧。 随着容器大小的变化,锚定子控件保持与定位端的距离。控件可以定位到一侧或多侧,不存在限制。 定位点由 Anchor 属性设置。


以上就是《基于.NET的Windows窗体编程之WinForms控件简介》的全部内容,关于更多详细内容,可参考官方文档。希望能够一起学习,共同进步。

阅读原文:点击这里


更多精彩文章浏览...
点击右上角图标分享到朋友圈
官方网站:http://www.clicksun.cn
咨询热线:400-186-1886
服务邮箱:service@clicksun.cn