首页 > 编程语言 >C#学习之五大基础控件

C#学习之五大基础控件

时间:2023-11-02 17:46:04浏览次数:48  
标签:控件 AutoSize C# Text Controls Add 五大 new true

Label

常见属性:

  • Text: 显示的文本内容。
  • Font: 设置字体属性。
  • ForeColor: 设置前景颜色。
  • BackColor: 设置背景颜色。
  • AutoSize: 控制是否自动调整大小。

常见方法:

  • Invalidate(): 使 Label 的整个显示区域无效。
  • Refresh(): 强制控件立即重新绘制。

TextBox

常见属性:

  • Text: 设置或获取文本框中的文本内容。
  • Font: 设置或获取文本框中文本的字体属性。
  • ForeColor: 设置或获取文本框中文本的前景色。
  • BackColor: 设置或获取文本框的背景颜色。
  • Multiline: 用于控制文本框是否可以输入多行文本。
  • PasswordChar: 设置密码文本框中的掩码字符。

常见方法:

  • Clear(): 清除文本框中的文本。
  • SelectAll(): 选中文本框中的所有文本。
  • Copy()、Cut()、Paste(): 分别用于复制、剪切和粘贴文本框中的文本。

Button

常见属性:

  • Text: 设置按钮显示的文本内容。
  • Font: 设置按钮文本的字体属性。
  • ForeColor: 设置按钮文本的前景颜色。
  • BackColor: 设置按钮的背景颜色。
  • Enabled: 控制按钮是否可用。

常见方法:

  • PerformClick(): 以编程方式模拟用户单击按钮。
  • Focus(): 将焦点设置到按钮上。
  • Click() 事件: 通过该事件处理方法响应按钮被点击的事件。

RadioButton

常见属性:

  • Text: 设置单选按钮显示的文本内容。
  • Checked: 设置或获取单选按钮的选中状态。
  • Enabled: 控制单选按钮是否可用。

常见方法:

  • Focus(): 将焦点设置到单选按钮上。
  • Check() 和 Uncheck(): 用于编程方式设置或取消单选按钮的选中状态。
  • CheckedChanged 事件: 通过该事件处理方法响应单选按钮选中状态改变的事件。

CheckBox 

常见属性:

  • Text: 设置复选框显示的文本内容。
  • Checked: 设置或获取复选框的选中状态。
  • CheckState: 设置或获取复选框的选中状态(Checked、Unchecked、Indeterminate)。
  • ThreeState: 控制复选框是否支持三种状态(Checked、Unchecked、Indeterminate)。

常见方法:

  • Focus(): 将焦点设置到复选框上。
  • Check() 和 Uncheck(): 用于编程方式设置或取消复选框的选中状态。
  • CheckedChanged 事件: 通过该事件处理方法响应复选框选中状态改变的事件。

下面是我使用上面五个控件写的一个简单的登录页面

采用垂直布局嵌套每个控件


using MySqlConnector;
using System.Data;

namespace CsharpLearn
{
    
    internal static class Program
    {
        //标明该程序为单进程
        [STAThread]
        static void Main()
        {
            ApplicationConfiguration.Initialize();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}


using System.Text.RegularExpressions;

namespace CsharpLearn
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void loginButtion_Click(object sender, EventArgs e)
        {
            String accountText = account.Text;
            String passwordText = password.Text;
            if(!Regex.IsMatch(accountText, "^[a-zA-Z0-9]+$"))
            {
                accountMsg.Visible = true;
                return;
            }
            else if(!Regex.IsMatch(passwordText, "^[a-zA-Z0-9]+$"))
            {
                passwordMsg.Visible = true;
                return;
            }
            else
            {
                MessageBox.Show("登录成功");
            }
        }
        private void Input_Focus(object sender, EventArgs e)
        {
            accountMsg.Visible = false;
            passwordMsg.Visible = false;
        }

    }
}
namespace CsharpLearn
{
    partial class Form1
    {
        private System.ComponentModel.IContainer components = null;
        private Label accountLabel;
        private TextBox account;
        private Label accountMsg;
        private Label passwordLabel;
        private TextBox password;
        private Label passwordMsg;
        private RadioButton teacher;
        private RadioButton student;
        private RadioButton manger;
        private CheckBox rememberMe;
        private CheckBox acceptItem;
        private Button loginButton;

        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        private void InitializeComponent()
        {
            //窗体基本设置
            this.Text = "系统登录页面";
            this.StartPosition = FormStartPosition.CenterScreen;
            this.ClientSize = new System.Drawing.Size(700, 600);
            this.Font=new Font("Arial", 18, FontStyle.Bold);
            this.ForeColor = Color.Blue;
            this.BackColor = Color.Azure;
            FlowLayoutPanel mainPanel = new FlowLayoutPanel();
            mainPanel.BackColor = Color.Wheat;
            mainPanel.BorderStyle = BorderStyle.FixedSingle;
            mainPanel.Location = new Point(100, 40);
            mainPanel.Padding = new Padding(50, 50, 50, 50);
            mainPanel.AutoSize = true;
            mainPanel.FlowDirection = FlowDirection.TopDown;
            FlowLayoutPanel accountPanel = new FlowLayoutPanel();
            accountPanel.FlowDirection = FlowDirection.LeftToRight;
            accountPanel.AutoSize = true;
            FlowLayoutPanel passwordPabel = new FlowLayoutPanel();
            passwordPabel.FlowDirection = FlowDirection.LeftToRight;
            passwordPabel.AutoSize = true;
            FlowLayoutPanel rolePanel = new FlowLayoutPanel();
            rolePanel.FlowDirection = FlowDirection.LeftToRight;
            rolePanel.AutoSize = true;
            FlowLayoutPanel othersPanel = new FlowLayoutPanel();
            othersPanel.FlowDirection = FlowDirection.LeftToRight;
            othersPanel.AutoSize = true;
            //标题
            Label headLabel = new Label();
            headLabel.Name = "headLabel";
            headLabel.Text = "测试系统";
            headLabel.Font= new Font("Arial", 24, FontStyle.Bold);
            headLabel.Margin = new Padding(100, 0, 0, 20);
            headLabel.AutoSize = true;
            //账号标签
            accountLabel = new Label();
            accountLabel.Name = "accountLabel";
            accountLabel.Text = "账号";
            accountLabel.AutoSize = true;
            accountPanel.Controls.Add(accountLabel);
            //账号输入,最大字符为8,不允许多行输入,只允许输入字母和数字
            account = new TextBox();
            account.Name = "account";
            account.Multiline = false;
            account.MaxLength = 8;
            account.Width = 300;
            accountPanel.Controls.Add(account);
            //账号提醒
            accountMsg = new Label();
            accountMsg.Name = "accountMsg";
            accountMsg.Text = "账号格式错误";
            accountMsg.ForeColor = Color.Red;
            accountMsg.AutoSize = true;
            accountMsg.Visible = false;
            accountMsg.Margin = new Padding(90, 0, 0, 0);
            //密码标签
            passwordLabel = new Label();
            passwordLabel.Name = "passwordLabel";
            passwordLabel.Text = "密码";
            passwordLabel.AutoSize = true;
            passwordPabel.Controls.Add(passwordLabel);
            //密码输入,最大长度为12,不允许多行输入,只允许输入字母和数字
            password = new TextBox();
            password.Name = "password";
            password.Multiline = false;
            password.PasswordChar = '-';
            password.MaxLength = 12;
            password.Width = 300;
            password.Location = new Point(300, 150);
            passwordPabel.Controls.Add(password);
            //密码提醒
            passwordMsg = new Label();
            passwordMsg.Name = "passwordMsg";
            passwordMsg.Text = "密码格式错误";
            passwordMsg.ForeColor = Color.Red;
            passwordMsg.AutoSize = true;
            passwordMsg.Visible = false;
            passwordMsg.Margin = new Padding(90, 0, 0, 0);
            //角色选择按钮
            teacher = new RadioButton();
            student = new RadioButton();
            manger = new RadioButton();
            teacher.Name = "role";
            student.Name = "role";
            manger.Name = "role";
            teacher.AutoSize = true;
            student.AutoSize = true;
            manger.AutoSize = true;
            teacher.Text = "老师";
            student.Text = "学生";
            manger.Text = "管理员";
            rolePanel.Controls.Add(teacher);
            rolePanel.Controls.Add(student);
            rolePanel.Controls.Add(manger);
            //其余选项
            rememberMe = new CheckBox();
            acceptItem = new CheckBox();
            rememberMe.Name = "others";
            acceptItem.Name = "others";
            rememberMe.Text = "记住我";
            acceptItem.Text = "接受使用条款";
            rememberMe.AutoSize = true;
            acceptItem.AutoSize = true;
            othersPanel.Controls.Add(rememberMe);
            othersPanel.Controls.Add(acceptItem);
            //登录按钮
            loginButton = new Button();
            loginButton.Text = "登录";
            loginButton.Name = "loginButton";
            loginButton.Margin = new Padding(150,10,0,0);
            loginButton.AutoSize = true;



            account.GotFocus += Input_Focus;
            password.GotFocus += Input_Focus;
            loginButton.Click += loginButtion_Click;
            

            mainPanel.Controls.Add(headLabel);
            mainPanel.Controls.Add(accountMsg);
            mainPanel.Controls.Add(accountPanel);
            mainPanel.Controls.Add(passwordMsg);
            mainPanel.Controls.Add(passwordPabel);
            mainPanel.Controls.Add(rolePanel);
            mainPanel.Controls.Add(othersPanel);
            mainPanel.Controls.Add(othersPanel);
            mainPanel.Controls.Add(loginButton);


            this.Controls.Add(mainPanel);
        }

    }
}

这里绑定了两个事件,一个是单机登录判断是否输入是否符合标准,还有一个就是输入获取角点则隐藏错误提示

 

标签:控件,AutoSize,C#,Text,Controls,Add,五大,new,true
From: https://www.cnblogs.com/liyiyang/p/17797398.html

相关文章

  • postman Pre-request Script(预处理)post请求获取sign(接口鉴权)
    背景请求业务接口时需要先调用auth应用的鉴权接口获取sign(类似其他系统登录接口返回的token),否则会提示:鉴权失败,从而导致业务接口无法使用。获取sign接口请求参数为业务接口的请求参数,所以Pre-requestScript(预处理)post请求内的body为变量。一、Pre-requestScript(预处理)......
  • Pset_SpaceCoveringRequirements
    Pset_SpaceCoveringRequirements房间装饰的属性。这些属性在房间计划的早期阶段被列为要求,如果服装不是作为独立元素设计的,则可以作为后期房间手册的信息。  NameTypeDescriptionFloorCoveringP_SINGLEVALUE / IfcLabelBodenbelagAngabedesMaterialsfürd......
  • HHDBCS扩展数据库类型
    为应对市面上的数据库种类繁多的问题,HHDBCS设置了扩展数据库功能。在登陆界面点击“工具”,选择“扩展数据库类型”;注:HHDBCS支持已kingbase,本文仅用来举例。填入名称、所需数据库的信息,上传驱动;然后点击保存。即可在登陆界面的数据库类型中,找到该数据库。点击登陆可使用基......
  • baichuan2-13b-chat加速
    当前加速框架层出不穷,到底哪个能一统天下未可知,那在当前阶段我们加速大模型该选取哪个框架呢。目前存在的大模型加速框架:VLLM,TGI,FasterTransformer,DeepSpeed-MII,FlexFlowServer,LMDeploy等等等等。但是这些框架大部分支持的模型都很少,或只支持英文模型,支持中文模型的更少,目前......
  • 定时任务@Scheduled之单线程多线程问题
    现象在一个类内,写了两个定时任务,发现它们竟然是串行执行的。于是想到,@Scheduled该不会是单线程执行折吧?于是找了一下,发现还真的是。。。可参考:https://blog.csdn.net/Mr_EvanChen/article/details/103408290解决方案1、ScheduledTaskRegistrar有一个setScheduler()方......
  • 一个无意间,发现解决POI处理非常大的Excel不会内存溢出的方法
    看到一个API用sxssfworkbook来生成Excel堆积图然后在百度的对话工具问了sxssfworkbook和xssfworkbook区别回答是:SXSSFWorkbook和XSSFWorkbook均为ApachePOI库中处理Excel文件的类,但它们有以下区别1:XSSFWorkbook基于OfficeOpenXML格式,适用于Excel2007及更高版本,它使用的......
  • yum install 报错Error downloading packages
    yuminstallntp报以下错误:Errordownloadingpackages:autogen-libopts-5.18-5.el7.x86_64:[Errno5][Errno2]Nosuchfileordirectoryntp-4.2.6p5-29.el7.centos.2.x86_64:[Errno5][Errno2]Nosuchfileordirectoryntpdate-4.2.6p5-29.el7.centos.2.x86_64:......
  • React面试题: 我是否可以在项目中不断使用React.Component来优化项目
    React.PureComponent是React的一个组件,主要用于性能优化,可以避免不必要的渲染。它的主要特点是:如果组件的props和state没有发生变化,则不会重新渲染(此处原理类似React.memo)。可以自动检查对象和数组,判断其是否需要重新渲染(是浅比较)。但是,React.PureComponent的缺点......
  • 文心一言 VS 讯飞星火 VS chatgpt (126)-- 算法导论11.1 1题
    一、用go语言,假设一动态集合S用一个长度为m的直接寻址表T来表示。请给出一个查找S中最大元素的过程。你所给的过程在最坏情况下的运行时间是多少?文心一言,代码正常运行:在这个问题中,我们需要实现一个查找动态集合S中最大元素的算法,该动态集合使用一个长度为m的直接寻址......
  • Leangoo领歌免费Scrum工具私有部署介绍
    ​私有部署介绍私有部署是指将Leangoo领歌软件部署在您企业内部的专有环境中,私有部署可以提供更高级别的数据隐私和安全性。这对于需要处理敏感数据的组织非常重要。Leangoo领歌提供了私有部署服务,旨在满足各类型、各规模企业的特殊需求。私有部署增值功能如下:灵活的部署方......