C# 第六章『交互式图形界面』◆第2节:控件(1)

        一、概述

        在C#中,控件的基类是位于System.Windows.Forms命名空间下的Control类。Control类定义了控件类的共同属性、方法和事件,其他的控件类都直接或间接地派生自这个基类。

        二、控件的相关操作

        1、添加控件

        ①在窗体中绘制控件:在工具箱中单击要添加到窗体的控件,在窗体中按住鼠标左键进行拖动。

        ②将控件直接拖拽到窗体中。

        ③以编程方式向窗体中添加控件:通过new关键字实例化要添加控件所在的类,然后将实例化的控件添加到窗体中。(不太常用)

第一步在窗体中拖入一个button1

         第二部:双击button1,或在button事件中双击Click。

在当前事件中输入以下代码即可
最后启动,按button1后出现

         2、对齐控件

        先选定主导控件(第一个被选定的控件就是主导控件),控件组的最终位置取决于主导控件的位置,再在—菜单栏—格式—对齐选择,选择对齐的方式。

         3、删除控件

        右键选择删除、选中控件按delete键。

扫描二维码关注公众号,回复: 14476078 查看本文章

        三、常用控件的使用

         1、Label控件(标签控件)

        主要用于显示用户不能编辑的文本,标识窗体上的对象,一般是用作描述信息作用等。另外也可以通过编写代码来设置要显示的文本信息。

        ①设置标签文本

        可以通过两种方法设置Label控件显示的文本:第一种直接在Label控件的属性面板中设置Text属性;第二种通过代码设置Text的属性。

label1.Text = "帐号:";

        ②显示/隐藏控件

        通过设置Visible属性来设置显示/隐藏Label控件,如果Visible属性的值为true,则显示控件;如果Visible属性的值为false,则隐藏控件。

label1.Visible = true;

        2、Button控件(按钮控件)

        允许用户通过单击来执行操作。button控件既可以显示文本,也可以显示图像。

private void button1_Click(object sender,EventArgs e)
{
    MessageBox.Show("开始");
}
private void button2_Click(object sender,EventArgs e)
{
    Application.Exit();//推出当前程序
}

        3、TextBox控件(文本框控件)

        TextBox控件主要用于获取用户输入的数据或显示文本,它通常用于可编辑文本,也可以使其成为只读控件。文本框可以显示多行。

        ①创建只读文本框

        通过设置文本框控件的ReadOnly属性,可以设置文本框是否为只读。如果ReadOnly属性为true,那么不能编辑文本框,只能通过文本框显示数据。

textBox1.ReadOnly = true;//文本框设置为只读

        ②创建密码文本框

        通过设置文本框的PasswordChar属性或UseSystemPasswordChar属性可以将文本框设置成密码文本框。使用PasswordChar属性可以设置输入密码时文本框中显示的字符(如将密码显示为“*”或“#”等)。如果将UseSystemPasswordChar属性设置为true,则当输入密码时,在文本框中输入则会显示为“*”。

         ③创建多行文本框

        默认情况下,TextBox控件只允许输入单行数据,如果将其Multiline属性设置为true,则在TextBox控件中即可输入多行数据。

         ④响应文本框的TextChanged事件

        当文本框中的文本发生更改时,将会引发文本框的TextChanged事件。

private void textBox1_TextChanged(object sender, EventArgs e)
        {
            label1.Text = textBox1.Text;
        }

         4、RadioButton控件(单选按钮控件)

        为用户提供有两个或多个互斥选项组成的选项集。当用户选中某单选按钮时,同一组中的其他单选按钮时,同一组中的其他单选按钮不能同时选定。

        单选按钮必须在同一组中才能实现单选效果。

        ①判断单选按钮是否选中

        通过Checked属性可以判断RadioButton控件的默认状态下是否选中的状态,如果属性值为true,则控件被选中;如果属性值为false,则控件选中状态被取消。

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

        当RadioButton控件的选中状态发生更改时,会引发控件的CheckedChanged事件

using System;
using System.Windows.Forms;

namespace _20220813_4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
            if (radioButton1.Checked)
            {
                MessageBox.Show("选择管理员登陆");
            }
        }

        private void radioButton2_CheckedChanged(object sender, EventArgs e)
        {
            if (radioButton2.Checked)
            {
                MessageBox.Show("选择普通用户登陆");
            }
        }
    }
}

        5、Checkbox控件(复选框控件)

        用来表示是否选取了某个选项条件,常用于为用户提供是/否真/假选项。

        ①判断复选框是否被选中

        

        通过CheckState属性可以判断复选框是否被选中。CheckState属性的返回值是Checked或Unchecked。返回值为Checked表示控件处在选中的状态。反之为Unchecked表示控件已经取消选中状态。

        备注:CheckBox控件指示某个特定条件是处于打开状态还是处于关闭状态,它常用于为用户提供是/否真/假选项。可以成组使用CheckBox控件以显示多重选项,用户可以 从中选择一项或多项。

        ②响应复选框的选中状态更改事件

        当CheckBox控件的选择状态发生改变时,将会引发控件的CheckStateChanged事件。

using System;
using System.Windows.Forms;

namespace _20220813_5
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string str = "选择的选项如下:";
            foreach (Control ctrl in this.Controls)     //遍历窗体中所有的控件
            {
                if (ctrl.GetType().Name == "CheckBox")  //判断是否为CheckBox
                {
                    CheckBox cBox = (CheckBox)ctrl;     //创建CheckBox对象
                    if (cBox.Checked == true)           //判断CheckBox控件是否被选中
                    {
                        str += "\n" + cBox.Text;        //获取CheckBox控件的文本
                    }
                }
            }
            MessageBox.Show(str);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_45336030/article/details/126323196