摘要
当您在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 | 获取或设置一个值,该值指示是否将格式设置应用于 DisplayMember 的 ListControl 属性。 (继承自 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 | 获取或设置一个值,该值指示复选框是否有 Flat 或 Normal 的 ButtonState。 |
| TopIndex | 获取或设置 ListBox 中第一个可见项的索引。 (继承自 ListBox) |
| UseCompatibleTextRendering | 获取或设置一个值,该值确定是使用Graphics类 (GDI+) 还是TextRenderer类 (GDI) 来呈现文本。 |
| UseCustomTabOffsets | 获取或设置一个值,它指示 ListBox 在通过使用 CustomTabOffsets 整数数组绘制字符串时是否识别并展开制表符。 (继承自 ListBox) |
| UseTabStops | 获取或设置一个值,该值指示 ListBox 在绘制其字符串时是否可识别和展开制表符。 (继承自 ListBox) |
| ValueMember | 获取或设置一个字符串,该字符串指定要从中取值的数据源的属性。 |
| DisplayMember | 获取或设置一个字符串,该字符串指定要显示其内容的列表框中所含对象的属性。 |
方法
一个例子
用户类
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








网友评论