在C#中有很多控件可以使用,但一些控件需要掌握其独特的用法。
1. ListBox控件的常用属性
a) SelectionMode属性:提供单项选择或多重选择。
b) MultiColumn属性:是否在列中水平显示,该值为true时将在每行显示多个列表项,而不是项的垂直(单列)列表。
c) Items属性:列表项中的项的集合。
d) Count属性:列表项中的数目。
e) SelectedIndex属性:当前被选中项的索引。
f) SelectedItem属性:当前被选中的项。
g) SelectedIndices属性:表示当前被选中项的索引的集合。
h) SelectedItems属性:当前被选中项的集合。
2. ListBox控件的常用方法
a) listBox.Items.Remove( )方法:删除某个项。
b) listBox.Items.Add()方法:添加一个新项。
3、ListBox控件即可以选择一个也可以进行多项选择,即在属性窗口中进行SelectionMode属性设置。
4、 CheckedListBox控件的常用属性
a) CheckedListBox控件扩展了ListBox控件,几乎能完成列表框可以完成的所有任务,并且还可在列表中的项旁边显示复选标记。
b)获取被选中的项的集合:
i. CheckedItems属性:被选中项的集合
ii. GetItemChecked( 索引值 ) 方法:得到指定的索引项是否被选中。可以使用循环遍历所有索引项。
5、对于删除listbox控件中的内容存在一个问题。
如图所示:选中控件中的内容,然后点击删除按钮即可删除。如果选中的是单个内容,即可以用以下代码。
private void button2_Click(object sender, EventArgs e)
{
//remove方法不能同时删除多个
this.listBox1.Items.Remove(this.listBox1.SelectedItem);
}
如果选中的是多项,那么选中的结果会是一个集合,所以删除时应该用循环。
for (int i = 0; i < listBox1.SelectedItems.Count; i++)
{
listBox1.Items.Remove(listBox1.SelectedItems[i]);
}
但存在一个错误,只能删除最先选择的那一项。
对其进行监视即可看出当删除第一个时,第二个向上移动。本以为下标应为1其实删除第一个后为0.
第一步:
第二步:
第三步:
所以如果想删除多项应该从后向前删除。即代码如下:
for (int i = listBox1.SelectedItems.Count - 1; i >= 0; i--)
{
listBox1.Items.Remove(listBox1.SelectedItems[i]);
}
或者只删除第一个内容:代码如下:
int count = listBox1.SelectedItems.Count;
for (int i = 0; i < count; i++)
{
listBox1.Items.Remove(listBox1.SelectedItems[0]);
}