【愚公系列】2023年09月 Winform控件专题 CheckedListBox控件详解


前言

Winform控件是Windows Forms中的用户界面元素,它们可以用于创建Windows应用程序的各种视觉和交互组件,例如按钮、标签、文本框、下拉列表框、复选框、单选框、进度条等。开发人员可以使用Winform控件来构建用户界面并响应用户的操作行为,从而创建功能强大的桌面应用程序。

一、CheckedListBox控件详解

CheckedListBox控件是Windows Forms中的一种常用控件,它用于显示一个多选列表框,可以让用户选择多个项。

使用CheckedListBox控件可以将一组相关的选项呈现给用户,用户可以在其中选择任意数量的选项。适用于需要用户对一组选项进行多选的场景。

在Winform中使用CheckedListBox控件需要进行以下步骤:

  1. 在Visual Studio中创建一个Windows Form应用程序,然后从工具箱中拖拽CheckedListBox控件到窗体上。
  2. 设置CheckedListBox的属性,包括ItemHeight、CheckOnClick、SelectionMode等。
  3. 添加列表项,可以使用Items属性添加单个或多个项。
  4. 处理Check事件,根据用户选择的项来作出相应的响应。

下面是一个简单的示例代码:

private void Form1_Load(object sender, EventArgs e)
{
    
    
    // 添加列表项
    checkedListBox1.Items.Add("C#");
    checkedListBox1.Items.Add("Java");
    checkedListBox1.Items.Add("Python");
    checkedListBox1.Items.Add("C++");

    // 设置属性
    checkedListBox1.CheckOnClick = true;
    checkedListBox1.SelectionMode = SelectionMode.MultiSimple;
}

private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
{
    
    
    // 每次选择一个项时,都会触发该事件
    if (e.NewValue == CheckState.Checked)
    {
    
    
        MessageBox.Show(string.Format("您选择了:{0}", checkedListBox1.Items[e.Index].ToString()));
    }
}

在上面的示例中,我们首先在窗体加载时添加了一些列表项,并设置了CheckedListBox的一些属性。然后处理了ItemCheck事件,在事件处理程序中根据用户选择的项来作出相应的响应。
在这里插入图片描述

1.属性介绍

1.1 CheckOnClick

CheckedListBox控件是Windows Forms中的一个常用控件,用于从列表中选择一个或多个项目。其中,CheckOnClick属性是控制当用户单击列表框中的项时是否自动选中该项的一个属性。

当CheckOnClick属性设置为true时,单击项时,该项的选中状态会自动切换。例如,如果您单击未选中的项,则会将其选中;而如果您单击选中的项,则会将其取消选中。另外,如果鼠标指针在项上滞留超过短暂时间,则该项将显示为选中状态。

当CheckOnClick属性设置为false时,单击项时,该项并不会自动选中或取消选中。相反,单击项只会更改列表框的焦点,这样用户可以使用键盘上的箭头键来更改选定项。

需要注意的是,当CheckOnClick属性为true时,如果您想使用鼠标右键单击来打开上下文菜单,则需要将控件的ContextMenuStrip属性设置为一个有效的上下文菜单。否则,当用户右键单击该控件时,选择项会自动切换其选中状态。

1.2 ColumnWidth

CheckedListBox控件的ColumnWidth属性用于设置该控件中每个项的列宽度。默认情况下,CheckedListBox控件中的每个项都是以默认宽度显示的,但是如果需要显示不同宽度的列,可以使用该属性。

该属性的值是以像素为单位的整数值。如果设置为零或负数,则将使用默认列宽度。如果需要显示多列,可以将该属性设置为大于零的值,并将CheckedListBox控件的MultiColumn属性设置为true。

例如,如果要将CheckedListBox控件设置为显示两列,可以将ColumnWidth属性设置为控件宽度的一半,如下所示:

checkedListBox1.ColumnWidth = checkedListBox1.Width / 2;
checkedListBox1.MultiColumn = true;

这将使CheckedListBox控件显示两列,每列的宽度为控件宽度的一半。如果需要显示更多列,可以相应地增加ColumnWidth属性的值,并将MultiColumn属性设置为true。
在这里插入图片描述

2.常用场景

CheckedListBox控件常用于让用户从一个列表中选择多个选项的情况,其中每个选项都可以被勾选或取消勾选。具体的使用场景包括:

  1. 产品特性选择:可以使用CheckedListBox来让用户在软件或网站上选择某些特性或功能。例如,一个视频编辑软件可以让用户勾选某些选项以启用特定的编辑功能。

  2. 选项过滤:如果你需要过滤或搜索大量的数据,可以使用CheckedListBox来让用户选择要显示或隐藏哪些选项。例如,一个在一个电商网站上的商品列表,用户可以通过勾选不同的选项来筛选商品。

  3. 多项选择:如果你需要让用户在多个选项之间进行选择,可以使用CheckedListBox来显示这些选项,并让用户对其中的多个选项进行选择。例如,一个选项卡控件可以让用户选择一个或多个标签页。

  4. 文件选择:在某些情况下,需要让用户选择一个或多个文件,并将它们添加到特定的集合中。CheckedListBox可以用于此目的。例如,一个文档编辑器可以让用户选择要打开的文件,然后将它们添加到编辑器中。

CheckedListBox控件非常适用于需要让用户从多项选项中进行选择的情况,对于一些需要用户选择多个选项的场景有很好的帮助作用。

3.具体案例

一个CheckBoxList控件是一个Winforms控件,它允许用户从多个选项中进行选择。每个选择都由一个复选框和相应的文本标签组成。用户可以单击复选框以选中或取消选中一个项。以下是一个简单的示例,展示如何在Winforms应用程序中使用CheckBoxList控件。

首先,我们需要在Visual Studio中打开一个新的Winforms项目,并将CheckedListBox控件添加到窗体上。您可以从工具箱中将其拖动到窗体上,或者从设计器中添加它。该控件的默认名称为checkedListBox1。

接下来,我们需要在窗体的Load事件中添加一些代码,以便向CheckBoxList控件添加一些项目。以下是一个简单的示例:

private void Form1_Load(object sender, EventArgs e)
{
    
    
    checkedListBox1.Items.Add("Item 1");
    checkedListBox1.Items.Add("Item 2");
    checkedListBox1.Items.Add("Item 3");
    checkedListBox1.Items.Add("Item 4");
    checkedListBox1.Items.Add("Item 5");
}

在此示例中,我们向CheckBoxList控件添加了五个项目。在运行应用程序时,这些项目将出现在窗体上,每个项目都有一个相应的复选框。

现在,我们需要为CheckBoxList控件添加一些事件处理程序,以便在用户选择某个项时获取通知。CheckBoxList控件有两个相关事件:ItemCheck和SelectedIndexChanged。ItemCheck事件在用户单击复选框时触发,而SelectedIndexChanged事件在用户选择某个项时触发。您可以选择使用其中一个事件,也可以同时使用两个事件。以下是一个使用ItemCheck事件的示例:

private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
{
    
    
    if (e.NewValue == CheckState.Checked)
    {
    
    
        MessageBox.Show("您选择了 " + checkedListBox1.Items[e.Index].ToString());
    }
    else
    {
    
    
        MessageBox.Show("您取消了选择 " + checkedListBox1.Items[e.Index].ToString());
    }
}

在此示例中,我们在用户选中或取消选中某个项时弹出一个消息框。消息框显示用户选择或取消选择的项的文本。要获取选定项的索引,我们可以使用ItemCheckEventArgs对象的Index属性。要获取选定项的文本,我们可以使用CheckBoxList控件的Items集合。

最后,我们还可以使用CheckedItems属性来获取用户选择的所有项目。以下是一个示例:

private void button1_Click(object sender, EventArgs e)
{
    
    
    string selectedItems = "";
    foreach (var item in checkedListBox1.CheckedItems)
    {
    
    
        selectedItems += item.ToString() + Environment.NewLine;
    }
    MessageBox.Show("您选择了以下项目: " + Environment.NewLine + selectedItems);
}

在此示例中,我们使用循环遍历CheckedItems集合,并将选定项目的文本添加到字符串中。最后,我们弹出一个消息框,显示用户选择的所有项目的文本。

这是一个非常基本的示例,演示如何在Winforms应用程序中使用CheckBoxList控件。您还可以使用其他属性和方法,例如CheckedIndices、SetItemChecked和GetItemCheckState,以实现更高级的功能。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/aa2528877987/article/details/132667440