C#之 WinForms 控件的详解(功能、用法、属性、事件以及常见的操作技巧)

好的,继续深入剖析 WinForms 控件的详细内容。以下是对一些常见控件的详细分析,涵盖其功能、用法、属性、事件以及常见的操作技巧。

1. Button(按钮控件)

功能:按钮控件是最常见的控件,用于触发用户的交互操作,通常用来提交表单、执行任务等。

  • 关键属性

    • Text:按钮上显示的文本。
    • Enabled:是否启用按钮。为 false 时,按钮变为灰色且无法响应点击。
    • FlatStyle:按钮的样式,可以选择 Flat, Standard, Popup 等。
    • Image:为按钮设置图标或图片。
    • AutoSize:当为 true 时,按钮会根据其内容自动调整大小。
  • 常见事件

    • Click:按钮被点击时触发。
    • MouseEnterMouseLeave:鼠标进入或离开按钮时触发。
    • MouseDownMouseUp:鼠标按下或释放时触发。
    • DoubleClick:双击按钮时触发。
  • 常见用法

    • 在表单上添加一个按钮并绑定事件:
      private void btnSubmit_Click(object sender, EventArgs e)
      {
          MessageBox.Show("按钮被点击了!");
      }
      
    • 设置按钮的 FlatStyleFlat 使其看起来更现代:
      btnSubmit.FlatStyle = FlatStyle.Flat;
      btnSubmit.BackColor = Color.LightBlue;
      

2. Label(标签控件)

功能:用于显示文本信息,通常不用于交互。

  • 关键属性

    • Text:标签上显示的文本内容。
    • Font:文本的字体样式、大小等。
    • ForeColor:文本的前景色。
    • BackColor:标签的背景色。
    • AutoSize:如果为 true,标签将自动根据文本内容调整大小。
    • TextAlign:设置文本对齐方式,可以设置为左对齐、居中对齐或右对齐。
  • 常见事件

    • Click:当标签被点击时触发(虽然标签一般不响应点击,但可以设置它响应事件)。
    • MouseEnterMouseLeave:鼠标进入或离开标签时触发。
  • 常见用法

    • 显示动态文本内容:
      lblMessage.Text = "正在加载数据...";
      
    • 设置标签的字体和颜色:
      lblMessage.Font = new Font("Arial", 14, FontStyle.Bold);
      lblMessage.ForeColor = Color.Red;
      

3. TextBox(文本框控件)

功能:允许用户输入单行或多行文本。TextBox 控件常用于接受用户输入。

  • 关键属性

    • Text:文本框中显示的文本内容。
    • Multiline:设置为 true 可以使文本框支持多行输入。
    • MaxLength:设置文本框允许的最大字符数。
    • PasswordChar:设置密码框显示的字符(例如 *)。
    • ScrollBars:设置文本框内的滚动条类型(如 None, Horizontal, Vertical, Both)。
    • WordWrap:设置是否自动换行。
  • 常见事件

    • TextChanged:文本框的内容发生改变时触发。
    • KeyPress:键盘按键被按下时触发。
    • KeyDownKeyUp:分别在键盘按键被按下或释放时触发。
    • EnterLeave:当焦点进入或离开文本框时触发。
  • 常见用法

    • 获取用户输入的文本:
      string userInput = txtName.Text;
      
    • 设置密码框:
      txtPassword.PasswordChar = '*';
      
    • 设置多行文本框:
      txtDescription.Multiline = true;
      txtDescription.ScrollBars = ScrollBars.Vertical;
      

4. ComboBox(组合框控件)

功能:提供下拉列表,允许用户从一系列选项中选择一个。

  • 关键属性

    • Items:存储组合框中显示的选项。
    • SelectedIndex:选择的项的索引,默认为 -1(未选择)。
    • SelectedItem:选中的项。
    • DropDownStyle:设置组合框的下拉方式。可以是 DropDownDropDownListSimple
    • Text:当 DropDownStyleDropDown 时,可以设置显示的文本。
  • 常见事件

    • SelectedIndexChanged:当选择的项发生变化时触发。
    • DropDown:当下拉列表显示时触发。
    • TextChanged:文本框内容发生变化时触发。
  • 常见用法

    • 向组合框中添加项目:
      comboBox1.Items.Add("Option 1");
      comboBox1.Items.Add("Option 2");
      comboBox1.Items.Add("Option 3");
      
    • 获取选择的项:
      string selectedOption = comboBox1.SelectedItem.ToString();
      

5. ListBox(列表框控件)

功能:用于显示一个可以多选或单选的项目列表。

  • 关键属性

    • Items:包含所有项的集合。
    • SelectedIndex:当前选中的项的索引。
    • SelectedItem:当前选中的项。
    • SelectionMode:设置选择模式,允许单选或多选(One, MultiSimple, MultiExtended)。
  • 常见事件

    • SelectedIndexChanged:当选中的项发生变化时触发。
    • DoubleClick:双击列表框项时触发。
  • 常见用法

    • 向列表框中添加项目:
      listBox1.Items.Add("Item 1");
      listBox1.Items.Add("Item 2");
      
    • 获取选中的项:
      string selectedItem = listBox1.SelectedItem.ToString();
      

6. DataGridView(数据网格控件)

功能:显示表格数据,并允许用户编辑、排序和选择数据。

  • 关键属性

    • DataSource:绑定数据源(如数据集、数据表、集合等)。
    • Columns:控制表格的列,例如设置列的名称、格式化方式等。
    • AllowUserToAddRows:是否允许用户在表格中添加行。
    • SelectionMode:设置选择模式(如单行选择、单元格选择等)。
  • 常见事件

    • CellValueChanged:单元格的值发生变化时触发。
    • CellClick:单元格被点击时触发。
    • CellFormatting:当需要格式化单元格时触发。
  • 常见用法

    • 绑定数据源:
      dataGridView1.DataSource = dataTable;
      
    • 自定义列:
      dataGridView1.Columns[0].HeaderText = "ID";
      dataGridView1.Columns[1].HeaderText = "Name";
      

7. PictureBox(图片框控件)

功能:用于显示图像文件,如 .jpg, .png 等。

  • 关键属性

    • Image:设置或获取显示的图像。
    • SizeMode:设置图像的显示模式,如 Normal, StretchImage, Zoom 等。
    • WidthHeight:设置控件的大小。
  • 常见事件

    • Click:当用户点击图像时触发。
  • 常见用法

    • 设置图片:
      pictureBox1.Image = Image.FromFile("path_to_image.jpg");
      
    • 设置图片自适应模式:
      pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
      

8. CheckBox(复选框控件)

功能:复选框允许用户选择或取消选择某一选项,通常用于表示布尔值(例如是/否、开/关)。

  • 关键属性

    • Checked:表示复选框是否被选中(布尔值)。如果为 true,复选框选中;为 false,复选框未选中。
    • Text:设置复选框旁边显示的文本。
    • CheckState:复选框的状态(如 CheckedUncheckedIndeterminate)。Indeterminate 状态常见于三态复选框。
    • AutoCheck:是否启用复选框的自动检查功能。设置为 false 时,用户点击复选框后不会自动改变其状态。
  • 常见事件

    • CheckedChanged:当复选框的选中状态发生变化时触发。
    • Click:用户点击复选框时触发。
  • 常见用法

    • 获取复选框的状态:
      bool isChecked = checkBox1.Checked;
      
    • 设置复选框的状态:
      checkBox1.Checked = true;  // 选中复选框
      checkBox1.Checked = false; // 取消选中
      
  • 示例代码:通过复选框改变其他控件的状态:

    private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
        if (checkBox1.Checked)
        {
            textBox1.Enabled = true;
        }
        else
        {
            textBox1.Enabled = false;
        }
    }
    

9. RadioButton(单选按钮控件)

功能:单选按钮控件用于提供一组选项,用户只能从一组选项中选择一个。它通常和其他单选按钮一起使用,形成一个互斥的选择组。

  • 关键属性

    • Checked:表示单选按钮是否被选中(布尔值)。为 true 时选中,为 false 时未选中。
    • GroupName:同一组中的单选按钮应有相同的 GroupName,这样它们会形成互斥选择的关系。
    • Text:设置单选按钮旁边显示的文本。
  • 常见事件

    • CheckedChanged:当单选按钮的选中状态发生变化时触发。
    • Click:当单选按钮被点击时触发。
  • 常见用法

    • 获取选中的单选按钮:
      bool isSelected = radioButton1.Checked;
      
    • 设置单选按钮的选中状态:
      radioButton1.Checked = true; // 选中单选按钮
      radioButton2.Checked = false; // 取消选中
      
  • 示例代码:通过单选按钮选择不同的背景色:

    private void radioButton1_CheckedChanged(object sender, EventArgs e)
    {
        if (radioButton1.Checked)
        {
            this.BackColor = Color.LightBlue;
        }
    }
    
    private void radioButton2_CheckedChanged(object sender, EventArgs e)
    {
        if (radioButton2.Checked)
        {
            this.BackColor = Color.LightGreen;
        }
    }
    

10. TrackBar(滑动条控件)

功能:滑动条控件允许用户选择一个范围内的值,通常用于调整音量、亮度等。

  • 关键属性

    • Minimum:滑动条的最小值。
    • Maximum:滑动条的最大值。
    • Value:当前滑动条的位置。
    • TickFrequency:滑动条上显示刻度的间隔。
    • LargeChange:滑动条大步移动的值(例如按住滑块拖动时的移动幅度)。
    • SmallChange:滑动条小步移动的值(例如按住箭头时的小幅度变化)。
  • 常见事件

    • Scroll:当滑动条的值发生变化时触发。
    • ValueChanged:当滑动条的值变化时触发。
  • 常见用法

    • 获取当前值:
      int currentValue = trackBar1.Value;
      
    • 设置滑动条的最大值和最小值:
      trackBar1.Minimum = 0;
      trackBar1.Maximum = 100;
      
  • 示例代码:根据滑动条的值动态改变窗体的透明度:

    private void trackBar1_Scroll(object sender, EventArgs e)
    {
        this.Opacity = trackBar1.Value / 100.0;
    }
    

11. MonthCalendar(月历控件)

功能:用于显示一个月视图的日历控件,用户可以选择日期。

  • 关键属性

    • SelectionStart:用户选择的起始日期。
    • SelectionEnd:用户选择的结束日期。
    • MaxDate:可选择的最大日期。
    • MinDate:可选择的最小日期。
    • TodayDate:当前日期。
    • ShowToday:是否显示“今天”按钮。
  • 常见事件

    • DateChanged:当用户选择的日期发生变化时触发。
    • DateSelected:当用户选择日期时触发。
  • 常见用法

    • 获取选择的日期:
      DateTime selectedDate = monthCalendar1.SelectionStart;
      
    • 设置最大日期:
      monthCalendar1.MaxDate = DateTime.Now.AddYears(1);
      
  • 示例代码:选择日期后显示一个消息框:

    private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
    {
        MessageBox.Show("您选择的日期是:" + e.Start.ToShortDateString());
    }
    

12. Timer(计时器控件)

功能:计时器控件用于在指定的时间间隔后执行代码,常用于执行定时任务。

  • 关键属性

    • Interval:设置计时器的时间间隔,单位为毫秒。
    • Enabled:控制计时器是否启用。为 true 时计时器开始计时。
  • 常见事件

    • Tick:计时器的时间间隔到达时触发。
  • 常见用法

    • 设置计时器的时间间隔并启动:
      timer1.Interval = 1000;  // 设置为1秒
      timer1.Start();
      
    • 在计时器触发事件中执行操作:
      private void timer1_Tick(object sender, EventArgs e)
      {
          // 执行定时任务
          label1.Text = DateTime.Now.ToString("HH:mm:ss");
      }
      

13. Panel(面板控件)

功能:面板控件用于承载其他控件,是一种容器控件。它可以用来分组或布局控件。

  • 关键属性

    • AutoScroll:是否启用自动滚动功能,当内容超出面板范围时启用滚动条。
    • BackColor:面板的背景色。
    • BorderStyle:面板的边框样式,常见的值有 NoneFixedSingleFixed3D
  • 常见事件

    • Paint:面板的内容需要重新绘制时触发,通常用于自定义绘制。
  • 常见用法

    • 将其他控件放置在面板中:
      panel1.Controls.Add(button1);
      panel1.Controls.Add(label1);
      

好的,接着继续讨论 TabControl 以及其他常见的 WinForms 控件。

14. TabControl(标签页控件)

功能TabControl 是一种标签页控件,常用于将多个面板或内容区域组织在一起,用户可以通过点击标签来切换不同的内容。它通常由多个 TabPage 组成,每个 TabPage 代表一个单独的标签页。

  • 关键属性

    • TabPages:获取 TabControl 中所有的 TabPage 集合。通过该属性可以动态添加、删除或访问标签页。
    • SelectedIndex:当前选中的标签页的索引。设置该属性可以通过代码切换选中的标签页。
    • SelectedTab:当前选中的 TabPage 对象。这个属性和 SelectedIndex 相对应,直接表示当前选中的标签页。
  • 常见事件

    • SelectedIndexChanged:当选中的标签页发生变化时触发。
    • Selecting:当标签页即将被选中时触发,允许取消选择。
  • 常见用法

    • 获取选中的标签页:
      TabPage selectedTab = tabControl1.SelectedTab;
      
    • 切换选中的标签页:
      tabControl1.SelectedIndex = 1; // 切换到第二个标签页
      
  • 示例代码:通过 TabControl 切换不同的内容:

    private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (tabControl1.SelectedIndex == 0)
        {
            label1.Text = "显示的是第一个标签页内容";
        }
        else if (tabControl1.SelectedIndex == 1)
        {
            label1.Text = "显示的是第二个标签页内容";
        }
    }
    

15. ComboBox(组合框控件)

功能ComboBox 是一个可以下拉显示列表并允许用户选择的控件,常用于需要让用户从多个选项中选择一个选项的场景。

  • 关键属性

    • Items:包含组合框中的所有选项,可以通过此属性来添加、删除或获取项。
    • SelectedIndex:当前选中项的索引。设置该属性可以通过代码选择项。
    • SelectedItem:当前选中的项。可以是任何类型(通常是字符串)。
    • DropDownStyle:控制组合框的下拉样式。常见值有:
      • DropDown:允许用户编辑选择的项(输入框和下拉框都可见)。
      • DropDownList:只允许选择项,不允许用户编辑。
      • Simple:下拉框始终展开。
  • 常见事件

    • SelectedIndexChanged:当选中的项发生变化时触发。
    • DropDownStyleChanged:当下拉框的样式发生变化时触发。
  • 常见用法

    • 获取当前选中的项:
      string selectedItem = comboBox1.SelectedItem.ToString();
      
    • 设置默认选中项:
      comboBox1.SelectedIndex = 2;  // 设置选择第三项
      
    • 添加项:
      comboBox1.Items.Add("新选项");
      
  • 示例代码:根据用户选择的项显示不同的消息:

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        string selectedOption = comboBox1.SelectedItem.ToString();
        MessageBox.Show("你选择了:" + selectedOption);
    }
    

16. ListBox(列表框控件)

功能ListBox 控件用于显示一组数据项,并允许用户从中选择一项或多项。它提供了一个滚动列表,可以让用户进行选择。

  • 关键属性

    • Items:包含 ListBox 中所有项的集合。
    • SelectedIndex:选中项的索引。可以通过代码获取或设置。
    • SelectedItem:选中的项。如果 SelectionModeMultiSimpleMultiExtended,可以有多个选中的项。
  • 常见事件

    • SelectedIndexChanged:当选中的项发生变化时触发。
    • Click:当用户点击 ListBox 时触发。
  • 常见用法

    • 获取选中的项:
      string selectedItem = listBox1.SelectedItem.ToString();
      
    • 设置选中项:
      listBox1.SelectedIndex = 1;  // 设置选择第二项
      
  • 示例代码:处理用户的选择并显示相关信息:

    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        string selectedOption = listBox1.SelectedItem.ToString();
        MessageBox.Show("你选择了:" + selectedOption);
    }
    

17. ProgressBar(进度条控件)

功能ProgressBar 控件用于显示一个操作的进度,常用于显示任务或加载过程的进度。

  • 关键属性

    • Minimum:进度条的最小值。
    • Maximum:进度条的最大值。
    • Value:当前进度条的值,表示已完成的部分。
    • Style:进度条的显示样式,常见值为:
      • Blocks:用块状的方式显示进度。
      • Continuous:连续的进度条。
  • 常见事件

    • Click:当进度条被点击时触发。
  • 常见用法

    • 设置进度条的最小值和最大值:
      progressBar1.Minimum = 0;
      progressBar1.Maximum = 100;
      
    • 更新进度条的当前值:
      progressBar1.Value = 50;  // 设置进度条为50%
      
  • 示例代码:模拟一个操作并更新进度条:

    private void button1_Click(object sender, EventArgs e)
    {
        progressBar1.Value = 0;  // 重置进度条
        for (int i = 0; i <= 100; i++)
        {
            progressBar1.Value = i;
            System.Threading.Thread.Sleep(50); // 模拟任务的延时
        }
    }
    

18. PictureBox(图片框控件)

功能PictureBox 控件用于显示图像,可以用来显示位图、JPEG、GIF 等格式的图片。

  • 关键属性

    • Image:设置或获取显示的图像。
    • SizeMode:设置图片的显示模式。常见的值有:
      • Normal:显示图片的原始大小。
      • StretchImage:拉伸图片以适应 PictureBox 的大小。
      • AutoSize:根据图片的尺寸自动调整 PictureBox 的大小。
      • Zoom:缩放图片以保持其纵横比。
  • 常见事件

    • Click:当用户点击图片时触发。
  • 常见用法

    • 设置显示的图片:
      pictureBox1.Image = Image.FromFile("image.jpg");
      
    • 设置显示模式:
      pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
      
  • 示例代码:在点击按钮时更改 PictureBox 中的图像:

    private void button1_Click(object sender, EventArgs e)
    {
        pictureBox1.Image = Image.FromFile("new_image.jpg");
    }
    

19. SplitContainer(分割容器控件)

功能SplitContainer 控件允许在两个区域之间添加一个可调整的分隔符,用户可以通过拖动分隔符来调整两个区域的大小。

  • 关键属性

    • Orientation:设置分隔符的方向。可以是 Horizontal(水平)或 Vertical(垂直)。
    • SplitterDistance:分隔符的位置。可以通过设置此属性来控制两个面板的大小比例。
  • 常见事件

    • SplitterMoved:当分隔符被移动时触发。
  • 常见用法

    • 设置分隔符的位置:
      splitContainer1.SplitterDistance = 200;  // 设置分隔符为200像素
      
  • 示例代码:动态调整 SplitterDistance

    private void splitContainer1_SplitterMoved(object sender, EventArgs e)
    {
        label1.Text = "分隔符位置:"
    
    

20. Timer(计时器控件)

功能Timer 控件用于在指定的时间间隔内定期触发事件。它常用于需要周期性执行某些操作的场景,例如定时更新界面、检查任务状态等。

  • 关键属性

    • Interval:设置计时器的时间间隔,单位为毫秒。例如,Interval = 1000 表示每隔 1 秒触发一次事件。
    • Enabled:控制计时器的启用和禁用。设置为 true 时,计时器开始计时,设置为 false 时,计时器停止。
  • 常见事件

    • Tick:当计时器触发时,该事件被触发。可以在该事件中执行定期任务。
  • 常见用法

    • 启动计时器:
      timer1.Enabled = true;  // 启动计时器
      timer1.Interval = 1000; // 设置时间间隔为1000毫秒(1秒)
      
    • 停止计时器:
      timer1.Enabled = false;  // 停止计时器
      
  • 示例代码:每秒更新一个标签的文本:

    private void timer1_Tick(object sender, EventArgs e)
    {
        label1.Text = DateTime.Now.ToString("HH:mm:ss");  // 显示当前时间
    }
    
    private void Form1_Load(object sender, EventArgs e)
    {
        timer1.Start();  // 启动计时器
    }
    

21. TreeView(树视图控件)

功能TreeView 控件用于以树形结构显示数据,通常用于显示层级关系的数据,如文件目录、组织架构等。

  • 关键属性

    • Nodes:包含树的所有根节点的集合。可以通过该属性访问和操作树视图中的节点。
    • SelectedNode:获取或设置当前选中的节点。
    • CheckBoxes:设置是否显示复选框。
  • 常见事件

    • AfterSelect:当选中某个节点时触发。
    • NodeMouseClick:当用户点击树视图中的节点时触发。
  • 常见用法

    • 添加节点:
      treeView1.Nodes.Add("根节点");
      treeView1.Nodes[0].Nodes.Add("子节点");
      
    • 获取选中的节点:
      TreeNode selectedNode = treeView1.SelectedNode;
      
    • 选择节点:
      treeView1.SelectedNode = treeView1.Nodes[0];  // 选择第一个节点
      
  • 示例代码:处理节点点击事件并显示选中的节点信息:

    private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
    {
        MessageBox.Show("你选择了节点:" + e.Node.Text);
    }
    

22. MaskedTextBox(掩码文本框控件)

功能MaskedTextBox 控件允许用户输入具有特定格式的文本。它常用于要求特定输入格式的场景,如电话号码、日期等。

  • 关键属性

    • Mask:设置输入的格式。可以指定每个输入字符的位置和类型(例如,数字、字母等)。
    • Text:获取或设置文本框中的内容。
    • PromptChar:设置默认的提示字符(例如,_ 用于填补未输入的字段)。
  • 常见事件

    • MaskInputRejected:当用户输入不符合掩码要求的字符时触发。
  • 常见用法

    • 设置掩码格式:
      maskedTextBox1.Mask = "(999) 000-0000";  // 设置为电话号码格式
      
    • 获取文本框中的值:
      string inputValue = maskedTextBox1.Text;
      
  • 示例代码:在文本框中输入并格式化电话号码:

    private void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
    {
        MessageBox.Show("输入的内容不符合预期格式!");
    }
    

23. RichTextBox(富文本框控件)

功能RichTextBox 控件是一个多功能文本框,可以显示和编辑富文本格式(例如,带有不同字体、颜色和格式的文本)。

  • 关键属性

    • Text:获取或设置控件中的文本内容。
    • Rtf:获取或设置控件中的富文本格式(RTF)内容。
    • SelectionFont:获取或设置当前选中文本的字体。
    • SelectionColor:获取或设置当前选中文本的颜色。
  • 常见事件

    • TextChanged:当文本内容发生变化时触发。
    • SelectionChanged:当选中文本的范围发生变化时触发。
  • 常见用法

    • 设置文本:
      richTextBox1.Text = "这是富文本框";
      
    • 设置选中文本的字体和颜色:
      richTextBox1.SelectionFont = new Font("Arial", 12, FontStyle.Bold);
      richTextBox1.SelectionColor = Color.Red;
      
  • 示例代码:处理文本变化事件并显示当前文本:

    private void richTextBox1_TextChanged(object sender, EventArgs e)
    {
        MessageBox.Show("当前文本:" + richTextBox1.Text);
    }
    

24. MonthCalendar(月历控件)

功能MonthCalendar 控件用于显示一个日历,用户可以通过它选择日期。它通常用于日期选择的场景。

  • 关键属性

    • SelectionStart:获取或设置用户选择的开始日期。
    • SelectionEnd:获取或设置用户选择的结束日期(如果选择了一个范围)。
    • TodayDate:获取或设置今天的日期。
  • 常见事件

    • DateChanged:当用户选择的日期发生变化时触发。
  • 常见用法

    • 设置默认日期:
      monthCalendar1.SetDate(DateTime.Now);  // 设置当前日期为选中日期
      
    • 获取选中的日期:
      DateTime selectedDate = monthCalendar1.SelectionStart;
      
  • 示例代码:显示用户选择的日期:

    private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
    {
        MessageBox.Show("你选择的日期是:" + e.Start.ToShortDateString());
    }
    

25. WebBrowser(Web 浏览器控件)

功能WebBrowser 控件用于在 Windows Forms 应用程序中嵌入网页浏览器。它允许显示 HTML 页面并与网页交互。

  • 关键属性

    • Url:获取或设置要在浏览器中显示的 URL。
    • DocumentText:获取或设置浏览器显示的 HTML 内容。
    • DocumentTitle:获取网页的标题。
  • 常见事件

    • DocumentCompleted:当网页加载完成时触发。
    • Navigating:在网页开始加载时触发。
  • 常见用法

    • 设置显示的网页:
      webBrowser1.Url = new Uri("https://www.example.com");
      
    • 获取当前网页的标题:
      string title = webBrowser1.DocumentTitle;
      
  • 示例代码:加载网页并显示加载完成信息:

    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        MessageBox.Show("网页加载完成!");
    }
    

好的,继续介绍 OpenFileDialog 控件以及其他一些常用控件。

26. OpenFileDialog(打开文件对话框控件)

功能OpenFileDialog 控件允许用户选择一个文件进行打开。常用于文件选择操作,例如打开文档、图片或其他类型的文件。

  • 常见用法

    • 显示文件对话框并获取用户选择的文件:
      if (openFileDialog1.ShowDialog() == DialogResult.OK)
      {
          string filePath = openFileDialog1.FileName;  // 获取用户选择的文件路径
          MessageBox.Show("你选择的文件路径是:" + filePath);
      }
      
  • 设置文件过滤器(只允许特定类型的文件):

    openFileDialog1.Filter = "文本文件 (*.txt)|*.txt|所有文件 (*.*)|*.*";
    
  • 设置初始目录

    openFileDialog1.InitialDirectory = @"C:\";
    
  • 示例代码:打开文件对话框并读取文件内容:

    private void openFileButton_Click(object sender, EventArgs e)
    {
        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            string filePath = openFileDialog1.FileName;
            string fileContent = File.ReadAllText(filePath);  // 读取文件内容
            MessageBox.Show("文件内容:" + fileContent);
        }
    }
    

27. SaveFileDialog(保存文件对话框控件)

功能SaveFileDialog 控件允许用户选择文件路径并保存文件。它通常与文件保存操作一起使用。

  • 常见属性

    • FileName:获取或设置保存的文件名。
    • Filter:设置文件过滤器,指定保存的文件类型(例如文本文件、图像文件等)。
    • InitialDirectory:设置保存文件时的初始目录。
  • 常见用法

    • 显示保存文件对话框并获取保存路径:
      if (saveFileDialog1.ShowDialog() == DialogResult.OK)
      {
          string filePath = saveFileDialog1.FileName;  // 获取用户选择的文件路径
          File.WriteAllText(filePath, "保存的内容");  // 将内容写入文件
      }
      
  • 设置文件过滤器(允许保存为特定类型的文件):

    saveFileDialog1.Filter = "文本文件 (*.txt)|*.txt|所有文件 (*.*)|*.*";
    
  • 示例代码:保存文本文件:

    private void saveFileButton_Click(object sender, EventArgs e)
    {
        if (saveFileDialog1.ShowDialog() == DialogResult.OK)
        {
            string filePath = saveFileDialog1.FileName;
            string contentToSave = "这是保存到文件的内容";
            File.WriteAllText(filePath, contentToSave);  // 将内容保存到用户指定的文件
            MessageBox.Show("文件已保存:" + filePath);
        }
    }
    

28. ColorDialog(颜色选择对话框控件)

功能ColorDialog 控件用于让用户选择颜色。常用于需要用户选择颜色的场景,比如设置字体颜色、背景颜色等。

  • 常见用法

    • 显示颜色对话框并获取选择的颜色:
      if (colorDialog1.ShowDialog() == DialogResult.OK)
      {
          Color selectedColor = colorDialog1.Color;  // 获取用户选择的颜色
          button1.BackColor = selectedColor;  // 设置按钮的背景色为选中的颜色
      }
      
  • 示例代码:让用户选择颜色并更改控件颜色:

    private void changeColorButton_Click(object sender, EventArgs e)
    {
        if (colorDialog1.ShowDialog() == DialogResult.OK)
        {
            label1.ForeColor = colorDialog1.Color;  // 设置文本标签的前景色
        }
    }
    

29. FontDialog(字体选择对话框控件)

功能FontDialog 控件允许用户选择字体样式、大小、粗细等。它通常用于字体选择场景,例如设置文本控件的字体。

  • 常见用法

    • 显示字体选择对话框并获取用户选择的字体:
      if (fontDialog1.ShowDialog() == DialogResult.OK)
      {
          Font selectedFont = fontDialog1.Font;  // 获取选中的字体
          label1.Font = selectedFont;  // 设置标签的字体为选中的字体
      }
      
  • 示例代码:让用户选择字体并应用:

    private void changeFontButton_Click(object sender, EventArgs e)
    {
        if (fontDialog1.ShowDialog() == DialogResult.OK)
        {
            richTextBox1.SelectionFont = fontDialog1.Font;  // 更改富文本框中的字体
        }
    }
    

30. ListView(列表视图控件)

功能ListView 控件用于显示项的集合,支持多列显示,并且可以支持详细视图、图标视图、报告视图等不同显示模式。常用于显示文件列表、数据表等。

  • 常见属性

    • View:设置 ListView 的显示模式,通常有三种模式:Details(详细信息)、LargeIcon(大图标)、SmallIcon(小图标)。
    • Items:获取 ListView 控件中的所有项。
    • Columns:获取 ListView 控件中的列。
  • 常见事件

    • ItemSelectionChanged:当选中的项发生变化时触发。
    • ColumnClick:当用户点击列标题时触发。
  • 常见用法

    • 添加项和列:
      listView1.View = View.Details;
      listView1.Columns.Add("名称", 150);
      listView1.Columns.Add("描述", 250);
      
      listView1.Items.Add(new ListViewItem(new string[] { "项1", "描述1" }));
      listView1.Items.Add(new ListViewItem(new string[] { "项2", "描述2" }));
      
  • 获取选中的项

    if (listView1.SelectedItems.Count > 0)
    {
        ListViewItem selectedItem = listView1.SelectedItems[0];  // 获取第一个选中的项
        MessageBox.Show("你选择的项是:" + selectedItem.Text);
    }
    
  • 示例代码:使用 ListView 显示文件信息:

    private void displayFilesButton_Click(object sender, EventArgs e)
    {
        listView1.Items.Clear();  // 清空现有项
        string[] files = Directory.GetFiles(@"C:\");  // 获取文件夹中的所有文件
        foreach (string file in files)
        {
            ListViewItem item = new ListViewItem(Path.GetFileName(file));
            item.SubItems.Add(new FileInfo(file).Length.ToString());
            listView1.Items.Add(item);
        }
    }
    

31. TrackBar(进度条控件)

功能TrackBar 控件允许用户通过拖动滑块来选择值。常用于音量调节、亮度调节等。

  • 常见属性

    • Minimum:设置滑块的最小值。
    • Maximum:设置滑块的最大值。
    • Value:获取或设置当前滑块的值。
    • TickFrequency:设置每次刻度之间的间隔。
  • 常见事件

    • Scroll:当用户拖动滑块时触发。
  • 常见用法

    • 设置 TrackBar 的范围:
      trackBar1.Minimum = 0;
      trackBar1.Maximum = 100;
      trackBar1.TickFrequency = 10;
      
  • 获取当前值

    int value = trackBar1.Value;
    MessageBox.Show("当前值是:" + value);
    
  • 示例代码:显示 TrackBar 的值:

    private void trackBar1_Scroll(object sender, EventArgs e)
    {
        label1.Text = "当前值:" + trackBar1.Value.ToString();
    }
    

好的,继续介绍进度条控件及其他一些常用控件。

32. ProgressBar(进度条控件)

功能ProgressBar 控件用于显示操作的进度。例如,当你进行长时间运行的操作(如文件上传、下载或数据处理)时,进度条控件可以让用户看到任务的进度。

  • 常见属性

    • Minimum:设置进度条的最小值(通常是0)。
    • Maximum:设置进度条的最大值(通常是100或任务的总工作量)。
    • Value:获取或设置进度条的当前值,通常随着任务的进展而更新。
    • Step:设置进度条每次增加的步长。
  • 常见事件

    • ValueChanged:当进度条的值发生变化时触发。
  • 常见用法

    • 设置 ProgressBar 的最大值和最小值:
      progressBar1.Minimum = 0;
      progressBar1.Maximum = 100;
      progressBar1.Value = 0;
      progressBar1.Step = 1;
      
  • 更新进度条的值

    for (int i = 0; i <= 100; i++)
    {
        progressBar1.Value = i;
        // 模拟工作过程
        Thread.Sleep(50);  // 延时模拟任务执行
    }
    
  • 示例代码:在长时间运行的操作中使用进度条:

    private void startOperationButton_Click(object sender, EventArgs e)
    {
        progressBar1.Value = 0;
        progressBar1.Maximum = 100;
        Task.Run(() =>
        {
            for (int i = 0; i <= 100; i++)
            {
                Thread.Sleep(50);  // 模拟操作
                Invoke(new Action(() =>
                {
                    progressBar1.Value = i;
                }));
            }
            MessageBox.Show("操作完成!");
        });
    }
    

33. Timer(定时器控件)

功能Timer 控件用于创建定时任务,能够在设定的时间间隔内执行指定的操作。常用于需要定时更新的功能,如定时检查数据、定时刷新UI等。

  • 常见属性

    • Interval:设置定时器的时间间隔(以毫秒为单位)。
    • Enabled:启用或禁用定时器。启用时,定时器开始工作,禁用时,定时器停止。
  • 常见事件

    • Tick:当定时器每到达一个时间间隔时触发。
  • 常见用法

    • 设置定时器的间隔并启动:
      timer1.Interval = 1000;  // 设置定时器每秒触发一次
      timer1.Start();  // 启动定时器
      
  • 处理定时器事件

    private void timer1_Tick(object sender, EventArgs e)
    {
        label1.Text = DateTime.Now.ToString();  // 每秒更新一次当前时间
    }
    
  • 停止定时器

    timer1.Stop();  // 停止定时器
    
  • 示例代码:每秒更新时间标签:

    private void startTimerButton_Click(object sender, EventArgs e)
    {
        timer1.Start();  // 启动定时器
    }
    
    private void timer1_Tick(object sender, EventArgs e)
    {
        label1.Text = DateTime.Now.ToString();  // 每秒更新时间标签
    }
    

34. ComboBox(组合框控件)

功能ComboBox 控件允许用户从下拉列表中选择一个项,或者直接在框中输入。它结合了 TextBoxListBox 的功能,可以用于显示一个可编辑的下拉列表。

  • 常见属性

    • Items:用于添加和访问组合框中的项。
    • SelectedItem:获取或设置当前选中的项。
    • SelectedIndex:获取或设置当前选中的项的索引。
  • 常见用法

    • 添加项到 ComboBox

      comboBox1.Items.Add("选项1");
      comboBox1.Items.Add("选项2");
      comboBox1.Items.Add("选项3");
      
    • 设置默认选择项:

      comboBox1.SelectedIndex = 0;  // 选择第一个项
      
    • 获取当前选中的项:

      string selectedItem = comboBox1.SelectedItem.ToString();
      MessageBox.Show("你选择了:" + selectedItem);
      
  • 示例代码:使用 ComboBox 选择一个城市:

    private void loadCitiesButton_Click(object sender, EventArgs e)
    {
        comboBox1.Items.Add("北京");
        comboBox1.Items.Add("上海");
        comboBox1.Items.Add("广州");
        comboBox1.Items.Add("深圳");
    }
    
    private void showCityButton_Click(object sender, EventArgs e)
    {
        string selectedCity = comboBox1.SelectedItem.ToString();
        MessageBox.Show("你选择的城市是:" + selectedCity);
    }
    

35. RadioButton(单选按钮控件)

功能RadioButton 控件用于创建一组选项中的单一选择。多个 RadioButton 可以组合在一起,保证只有一个按钮被选中。

  • 常见属性

    • Checked:获取或设置按钮是否被选中。
    • Text:设置或获取按钮的文本。
  • 常见事件

    • CheckedChanged:当按钮的选中状态发生变化时触发。
  • 常见用法

    • 设置默认选中的 RadioButton

      radioButton1.Checked = true;  // 选中第一个按钮
      
    • 获取当前选中的 RadioButton

      if (radioButton1.Checked)
      {
          MessageBox.Show("你选择了选项 1");
      }
      
  • 示例代码:选择一个性别:

    private void submitButton_Click(object sender, EventArgs e)
    {
        if (maleRadioButton.Checked)
        {
            MessageBox.Show("你选择了男");
        }
        else if (femaleRadioButton.Checked)
        {
            MessageBox.Show("你选择了女");
        }
        else
        {
            MessageBox.Show("没有选择性别");
        }
    }
    

36. CheckBox(复选框控件)

功能CheckBox 控件允许用户选择或取消选择某一项。与 RadioButton 不同,复选框可以独立操作,因此多个复选框可以同时选中。

  • 常见属性

    • Checked:获取或设置复选框是否选中。
    • Text:设置或获取复选框的文本。
  • 常见事件

    • CheckedChanged:当复选框的选中状态发生变化时触发。
  • 常见用法

    • 设置复选框的初始状态:

      checkBox1.Checked = true;  // 选中复选框
      
    • 获取复选框的状态:

      if (checkBox1.Checked)
      {
          MessageBox.Show("你选择了复选框");
      }
      else
      {
          MessageBox.Show("复选框没有选择");
      }
      
  • 示例代码:选择兴趣爱好:

    private void submitButton_Click(object sender, EventArgs e)
    {
        string selectedHobbies = "你选择的兴趣爱好:\n";
        
        if (sportsCheckBox.Checked) selectedHobbies += "体育\n";
        if (musicCheckBox.Checked) selectedHobbies += "音乐\n";
        if (readingCheckBox.Checked) selectedHobbies += "阅读\n";
        
        MessageBox.Show(selectedHobbies);
    }
    

总结

这些控件是 C# 和 WinForms 中常用的用户界面元素,能够帮助你快速开发功能丰富的桌面应用程序。每个控件都可以通过设置其属性、事件和方法来满足不同的应用需求。希望通过这些介绍,你对常见的 Windows 窗体控件有了更全面的理解,并能在实际开发中灵活运用它们。如果你有更具体的开发问题,随时可以提问!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

观视界

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值