一、窗体控件(Form)

1. 概述

  • 是 WinForm 应用程序的基础容器,构成用户界面的主要框架。每个 WinForm 应用程序至少包含一个 Form

2. 重要属性

  • Text:设置或获取窗体标题栏显示的文本。例如,this.Text = "我的应用程序",会将窗体标题设置为 “我的应用程序”。
  • Size:控制窗体的大小,通过 WidthHeight 属性分别指定宽度和高度。如 this.Size = new Size(800, 600),创建一个宽 800 像素,高 600 像素的窗体。
  • Location:确定窗体在屏幕上的位置,通过 XY 属性指定左上角坐标。例如 this.Location = new Point(100, 100),将窗体左上角置于屏幕坐标 (100, 100) 处。
  • FormBorderStyle:定义窗体边框的样式,如 FixedSingle(固定单边框)、Sizable(可调整大小边框)等。this.FormBorderStyle = FormBorderStyle.FixedSingle
  • MaximizeBox 和 MinimizeBox:分别控制最大化和最小化按钮是否显示。例如,this.MaximizeBox = false 会隐藏最大化按钮。

3. 常见事件

  • Load:在窗体首次加载到内存时触发,常在此事件中进行初始化操作,如初始化控件数据、绑定数据源等。
private void Form1_Load(object sender, EventArgs e)
{
    // 初始化代码
}
  • Click:当用户单击窗体时触发。
private void Form1_Click(object sender, EventArgs e)
{
    MessageBox.Show("你点击了窗体");
}
  • Closing:在窗体关闭过程中,关闭操作完成前触发。可在此事件中进行确认提示或资源清理操作。
private void Form1_Closing(object sender, CancelEventArgs e)
{
    DialogResult result = MessageBox.Show("确定要关闭窗体吗?", "提示", MessageBoxButtons.YesNo);
    if (result == DialogResult.No)
    {
        e.Cancel = true; // 取消关闭操作
    }
}

二、Label 控件

1. 概述

  • 主要用于在窗体上显示静态文本信息,如提示信息、标题等,用户不能直接编辑其显示的文本。

2. 重要属性

  • Text:设置或获取要显示的文本内容。例如,label1.Text = "请输入用户名:"
  • Font:控制文本的字体样式,包括字体名称、大小、加粗、倾斜等。如 label1.Font = new Font("宋体", 12, FontStyle.Bold)
  • ForeColor:设置文本的颜色。例如,label1.ForeColor = Color.Red,将文本颜色设为红色。
  • BackColor:设置标签的背景颜色。如 label1.BackColor = Color.LightGray
  • TextAlign:指定文本在标签内的对齐方式,如 MiddleCenter(居中对齐)、TopLeft(左上角对齐)等。label1.TextAlign = ContentAlignment.MiddleCenter

3. 常见用途

  • 为其他控件提供说明性文本,如在文本框旁边显示提示信息,告知用户该文本框的用途。

三、TextBox 控件

1. 概述

  • 用于接收用户的文本输入,可输入单行或多行文本,也支持密码输入模式(隐藏输入内容)。

2. 重要属性

  • Text:获取或设置文本框中当前显示的文本内容。例如,string input = textBox1.Text 获取用户输入的文本。
  • MaxLength:限制用户可输入的最大字符数。如 textBox1.MaxLength = 50,用户最多能输入 50 个字符。
  • Multiline:设置是否允许多行输入。设为 true 时,文本框可显示和输入多行文本;false 为单行输入(默认)。textBox1.Multiline = true
  • PasswordChar:在密码输入场景下,设置显示的替代字符。例如,textBox1.PasswordChar = '*',输入的字符将显示为 *
  • ReadOnly:设为 true 时,文本框内容只能查看,不能编辑;false 时可编辑(默认)。textBox1.ReadOnly = true

3. 常见事件

  • TextChanged:当文本框中的文本内容发生改变时触发。常用于实时验证输入内容,如输入邮箱格式验证。
private void textBox1_TextChanged(object sender, EventArgs e)
{
    // 验证逻辑
}
  • KeyPress:当用户按下并释放一个键时触发,可用于拦截特定按键,如限制只能输入数字。
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (!char.IsDigit(e.KeyChar) && e.KeyChar != (char)Keys.Back)
    {
        e.Handled = true; // 拦截非数字和退格键
    }
}

四、Button 控件

1. 概述

  • 是用户触发操作的重要控件,用户点击按钮时,会执行预先定义好的事件处理代码。

2. 重要属性

  • Text:设置按钮上显示的文本,如 button1.Text = "提交"
  • Enabled:控制按钮是否可用。设为 true 时可用(默认),false 时按钮呈灰色不可点击状态。button1.Enabled = false
  • Image:可设置按钮上显示的图像,用于增强按钮的可视化效果。需先将 ImageAlign 属性设置为合适的对齐方式,如 MiddleLeft(图像居左,文本居右)。

3. 常见事件

  • Click:当用户点击按钮时触发,是最常用的事件,在事件处理方法中编写按钮被点击后要执行的逻辑,如提交表单、执行计算等。
private void button1_Click(object sender, EventArgs e)
{
    MessageBox.Show("按钮被点击了");
}

一、窗体(Form)的背景与颜色

1. 设置背景色

  • 属性面板设置:选中窗体 → 找到 BackColor 属性 → 选择颜色(如 LightBlue)。
  • 代码设置
    // 窗体加载时设置背景色
    private void Form1_Load(object sender, EventArgs e)
    {
        this.BackColor = Color.LightBlue; // 浅蓝色背景
    }
    

2. 设置标题栏样式(可选)

WinForm 窗体的标题栏颜色默认跟随系统主题,若要自定义标题栏,需通过重绘窗体实现(较复杂),通常建议保持默认。

二、Label 控件的背景与颜色

1. 前景色(字体颜色)

  • 属性面板:ForeColor → 选择颜色(如 Red)。
  • 代码设置:
    label1.ForeColor = Color.Red; // 字体设为红色
    

2. 背景色

  • 属性面板:BackColor → 选择颜色(如 LightGray)。
  • 代码设置:
    label1.BackColor = Color.LightGray; // 背景设为浅灰色
    

3. 透明背景(让 Label 背景和父容器一致)

设置 BackColorTransparent

label1.BackColor = Color.Transparent;

三、TextBox 控件的背景与颜色

1. 前景色(输入文本颜色)

  • 属性面板:ForeColor → 选择颜色(如 DarkBlue)。
  • 代码设置:
    textBox1.ForeColor = Color.DarkBlue; // 输入的文字为深蓝色
    

2. 背景色

  • 属性面板:BackColor → 选择颜色(如 LightYellow)。
  • 代码设置:
    textBox1.BackColor = Color.LightYellow; // 背景设为浅黄色
    

3. 只读状态的颜色

ReadOnly = true 时,默认背景为浅灰色,可通过 BackColor 自定义:

textBox1.ReadOnly = true;
textBox1.BackColor = Color.LightGreen; // 只读时背景为浅绿色

四、Button 控件的背景与颜色

1. 前景色(按钮文字颜色)

  • 属性面板:ForeColor → 选择颜色(如 White)。
  • 代码设置:
    button1.ForeColor = Color.White; // 按钮文字为白色
    

2. 背景色

  • 属性面板:BackColor → 选择颜色(如 DarkGreen)。
  • 代码设置:
    button1.BackColor = Color.DarkGreen; // 按钮背景为深绿色
    

3. 鼠标悬浮 / 点击时的颜色(高级)

通过 MouseEnterMouseLeaveClick 事件实现动态颜色变化:

// 鼠标悬浮时变色
private void button1_MouseEnter(object sender, EventArgs e)
{
    button1.BackColor = Color.Green;
}

// 鼠标离开时恢复
private void button1_MouseLeave(object sender, EventArgs e)
{
    button1.BackColor = Color.DarkGreen;
}

// 点击时临时变色
private void button1_Click(object sender, EventArgs e)
{
    button1.BackColor = Color.LimeGreen;
    // 执行逻辑后恢复(可加延迟)
    Task.Delay(200).ContinueWith(_ => 
    {
        this.Invoke(new Action(() => button1.BackColor = Color.DarkGreen));
    });
}

五、全局主题色(统一控件风格)

若要让所有控件使用统一的颜色风格,可在窗体加载时批量设置

private void Form1_Load(object sender, EventArgs e)
{
    // 窗体背景
    this.BackColor = Color.LightCyan;

    // 所有Label的样式
    foreach (Label label in this.Controls.OfType<Label>())
    {
        label.ForeColor = Color.DarkSlateGray;
        label.BackColor = Color.Transparent;
    }

    // 所有TextBox的样式
    foreach (TextBox tb in this.Controls.OfType<TextBox>())
    {
        tb.ForeColor = Color.DarkBlue;
        tb.BackColor = Color.LightYellow;
    }

    // 所有Button的样式
    foreach (Button btn in this.Controls.OfType<Button>())
    {
        btn.ForeColor = Color.White;
        btn.BackColor = Color.DarkOrange;
    }
}

更多推荐