美文网首页
C# CheckedListBox 多选框列表

C# CheckedListBox 多选框列表

作者: 技术老小子 | 来源:发表于2025-02-22 07:17 被阅读0次

摘要


当您在C#中创建一个CheckedListBox时,您将获得一个非常有用的控件,它允许您在用户界面中呈现一个列表框,其中包含可供用户选择的选项。CheckedListBox允许用户在每个选项旁边看到一个复选框,这意味着用户可以轻松地勾选和取消勾选多个选项。

当您将选项添加到CheckedListBox时,每个选项都会显示在一个水平线条上,并带有一个可供用户勾选的复选框。当用户勾选复选框时,CheckedListBox将为选中的选项添加一个圆圈。您还可以在CheckedListBox中使用ItemCheck事件来检测选项是否已被选中。

除了ItemCheck事件之外,CheckedListBox还提供了其他有用的事件和属性,例如CheckStateChanged事件和CheckedListBox.Items属性。您可以使用CheckedListBox.CheckStateChanged事件来检测当前选项的状态是否已更改,并根据需要更新用户界面。您还可以使用CheckedListBox.Items属性来获取当前列表框中的所有选项。

正文


属性

AllowSelection 获取一个值,该值指示 ListBox 当前是否启用了列表项的选择。 (继承自 ListBox)
Anchor 获取或设置控件绑定到的容器的边缘并确定控件如何随其父级一起调整大小。 (继承自 Control)
AutoScrollOffset 获取或设置一个值,该值指示在 ScrollControlIntoView(Control) 中将控件滚动到何处。 (继承自 Control)
AutoSize 此属性与此类无关。 (继承自 Control)
BackColor 获取或设置控件的背景色。 (继承自 ListBox)
BackgroundImage 此属性与此类无关。 (继承自 ListBox)
BackgroundImageLayout 按照 ListBox 枚举中的定义获取或设置 ImageLayout 的背景图像布局。 (继承自 ListBox)
BindingContext 获取或设置控件的 BindingContext。 (继承自 Control)
BorderStyle 获取或设置在 ListBox 四周绘制的边框的类型。 (继承自 ListBox)
Bottom 获取控件上边缘与其容器工作区的上边缘之间的距离(以像素为单位)。 (继承自 Control)
CausesValidation 获取或设置一个值,该值指示控件是否会引起在任何需要在接收焦点时执行验证的控件上执行验证。 (继承自 Control)
CheckedIndices CheckedListBox 中选中索引的集合。
CheckedItems CheckedListBox 中选中项的集合。
CheckOnClick 获取或设置一个值,该值指示当选定项时是否应切换复选框。
ClientRectangle 获取表示控件的工作区的矩形。 (继承自 Control)
ClientSize 获取或设置控件的工作区的高度和宽度。 (继承自 Control)
ColumnWidth 获取或设置多列 ListBox 中列的宽度。 (继承自 ListBox)
DataManager 获取与此控件关联的 CurrencyManager。 (继承自 ListControl)
DataSource 获取或设置控件的数据源。
DefaultSize 获取控件的默认大小。 (继承自 ListBox)
DisplayMember 获取或设置一个字符串,该字符串指定要显示其内容的列表框中所含对象的属性。
DisplayRectangle 获取表示控件的显示区域的矩形。 (继承自 Control)
Font 获取或设置控件显示的文字的字体。 (继承自 ListBox)
FontHeight 获取或设置控件的字体的高度。 (继承自 Control)
ForeColor 获取或设置控件的前景色。 (继承自 ListBox)
FormatInfo 获取或设置提供自定义格式设置行为的 IFormatProvider。 (继承自 ListControl)
FormatString 获取或设置指示显示值的方式的格式说明符字符。 (继承自 ListControl)
FormattingEnabled 获取或设置一个值,该值指示是否将格式设置应用于 DisplayMemberListControl 属性。 (继承自 ListControl)
HorizontalExtent 获取或设置 ListBox 的水平滚动条可滚动的宽度。 (继承自 ListBox)
HorizontalScrollbar 获取或设置一个值,该值指示是否在控件中显示水平滚动条。 (继承自 ListBox)
IntegralHeight 获取或设置一个值,该值指示控件是否应调整大小以避免只显示项的局部。 (继承自 ListBox)
ItemHeight 获取项区域的高度。
Items 获取该 CheckedListBox 中项的集合。
MultiColumn 获取或设置一个值,该值指示 ListBox 是否支持多列。 (继承自 ListBox)
PreferredHeight 获取 ListBox 中所有项的组合高度。 (继承自 ListBox)
RightToLeft 获取或设置一个值,该值指示由控件显示的文本是否从右向左显示。 (继承自 ListBox)
ScrollAlwaysVisible 获取或设置一个值,该值指示是否任何时候都显示垂直滚动条。 (继承自 ListBox)
SelectedIndex 获取或设置 ListBox 中当前选定项的从零开始的索引。 (继承自 ListBox)
SelectedIndices 获取一个集合,该集合包含 ListBox 中所有当前选定项的从零开始的索引。 (继承自 ListBox)
SelectedItem 获取或设置 ListBox 中的当前选定项。 (继承自 ListBox)
SelectedItems 获取包含 ListBox 中当前选定项的集合。 (继承自 ListBox)
SelectedValue 获取或设置由 ValueMember 属性指定的成员属性的值。 (继承自 ListControl)
SelectionMode 获取或设置指定选择模式的值。
Sorted 获取或设置一个值,该值指示 ListBox 中的项是否按字母顺序排序。 (继承自 ListBox)
Text 获取或搜索 ListBox 中当前选定项的文本。 (继承自 ListBox)
ThreeDCheckBoxes 获取或设置一个值,该值指示复选框是否有 FlatNormalButtonState
TopIndex 获取或设置 ListBox 中第一个可见项的索引。 (继承自 ListBox)
UseCompatibleTextRendering 获取或设置一个值,该值确定是使用Graphics类 (GDI+) 还是TextRenderer类 (GDI) 来呈现文本。
UseCustomTabOffsets 获取或设置一个值,它指示 ListBox 在通过使用 CustomTabOffsets 整数数组绘制字符串时是否识别并展开制表符。 (继承自 ListBox)
UseTabStops 获取或设置一个值,该值指示 ListBox 在绘制其字符串时是否可识别和展开制表符。 (继承自 ListBox)
ValueMember 获取或设置一个字符串,该字符串指定要从中取值的数据源的属性。
DisplayMember 获取或设置一个字符串,该字符串指定要显示其内容的列表框中所含对象的属性。

方法

BeginUpdate() 当向 ListBox 中一次添加一个项时,通过防止该控件绘图来维护性能,直到调用 EndUpdate() 方法为止。 (继承自 ListBox)
BringToFront() 将控件带到 Z 顺序的前面。 (继承自 Control)
ClearSelected() 取消选择 ListBox 中的所有项。 (继承自 ListBox)
CreateItemCollection() 创建项集合的新实例。
CreateObjRef(Type) 创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。 (继承自 MarshalByRefObject)
EndUpdate() BeginUpdate() 方法挂起绘制后,该方法恢复绘制 ListBox 控件。 (继承自 ListBox)
Equals(Object) 确定指定对象是否等于当前对象。 (继承自 Object)
FilterItemOnProperty(Object) 如果 ListControl 项是被给定了该项的对象的属性,则检索该项的当前值。 (继承自 ListControl)
FilterItemOnProperty(Object, String) 如果 ListControl 项是被给定了该项以及属性名称的对象的属性,则返回该项的当前值。 (继承自 ListControl)
FindForm() 检索控件所在的窗体。 (继承自 Control)
FindString(String) 查找 ListBox 中以指定字符串开始的第一个项。 (继承自 ListBox)
FindString(String, Int32) 查找 ListBox 中以指定字符串开始的第一个项。 搜索从特定的起始索引处开始。 (继承自 ListBox)
FindStringExact(String) 查找 ListBox 中第一个精确匹配指定字符串的项。 (继承自 ListBox)
FindStringExact(String, Int32) 查找 ListBox 中第一个精确匹配指定字符串的项。 搜索从特定的起始索引处开始。 (继承自 ListBox)
GetItemChecked(Int32) 返回指示指定项是否选中的值。
GetItemCheckState(Int32) 返回指示当前项的复选状态的值。
GetItemHeight(Int32) 返回 ListBox 中某项的高度。 (继承自 ListBox)
GetItemRectangle(Int32) 返回 ListBox 中的项的边框。 (继承自 ListBox)
GetItemText(Object) 返回指定项的文本表示形式。 (继承自 ListControl)
IndexFromPoint(Int32, Int32) 返回指定坐标处的项的从零开始的索引。 (继承自 ListBox)
IndexFromPoint(Point) 返回指定坐标处的项的从零开始的索引。 (继承自 ListBox)
InitializeLifetimeService() 获取生存期服务对象来控制此实例的生存期策略。 (继承自 MarshalByRefObject)
Refresh() 强制控件使其工作区无效并立即重绘自己和任何子控件。 (继承自 ListBox)
RefreshItem(Int32) 刷新指定索引处的项。 (继承自 ListBox)
RefreshItems() 再次分析所有 CheckedListBox 项,并获取这些项的新的文本字符串。
ResetBackColor() BackColor 属性重置为其默认值。 (继承自 ListBox)
SetItemChecked(Int32, Boolean) 将指定索引处的项的 CheckState 设置为 Checked
SetItemCheckState(Int32, CheckState) 设置指定索引处的项的复选状态。
SetItemCore(Int32, Object) 在派生类中设置具有指定索引的对象。 (继承自 ListBox)
SetItemsCore(IList) 清除 ListBox 的内容,并向控件中添加指定项。 (继承自 ListBox)
SetSelected(Int32, Boolean) 选择或清除对 ListBox 中指定项的选定。 (继承自 ListBox)
Sort() ListBox 中的项排序。 (继承自 ListBox)

一个例子

用户类

public class User
{
    public int Id { get; set; }
    public string Name { get; set; }

    public int Aget { get; set; }

    public override string ToString()
    {
        return Name;
    }

}

初使化

private void btnAdd_Click(object sender, EventArgs e)
{
    User[] users = new User[3];
    users[0] = new User()
    {
        Name = "刘备",
        Aget = 45,
        Id = 1
    };
    users[1] = new User()
    {
        Name = "关羽",
        Aget = 43,
        Id = 2
    };
    users[2] = new User()
    {
        Name = "张飞",
        Aget = 40,
        Id = 3
    };
    foreach (var item in users)
    {
        chkLstAll.Items.Add(item);
    }
}

用DataSource绑定也可以

chkLstAll.DataSource= users;
chkLstAll.DisplayMember = "Name";

image.png

读取选项

private void btnRead_Click(object sender, EventArgs e)
{
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < chkLstAll.Items.Count; i++)
    {
        if (chkLstAll.GetItemChecked(i))
        {
            User user = (User)chkLstAll.Items[i];
            sb.Append(user.Name + "," +user.Aget.ToString());
        }
    }
    MessageBox.Show(sb.ToString());
}

image.png

全选

private void btnSelectAll_Click(object sender, EventArgs e)
{
    for (int i = 0; i < chkLstAll.Items.Count; i++)
    {
        chkLstAll.SetItemChecked(i, true);
    }
}

反选

private void btnCancelAll_Click(object sender, EventArgs e)
{
    for (int i = 0; i < chkLstAll.Items.Count; i++)
    {
        chkLstAll.SetItemChecked(i, false);
    }
}

image.png

相关文章

网友评论

      本文标题:C# CheckedListBox 多选框列表

      本文链接:https://www.haomeiwen.com/subject/bgpvpjtx.html