摘要
ListBox
控件显示一个项列表,用户可以从中选择一个或多个项。
如果项总数超过可显示的数量,则会自动向 ListBox 控件添加滚动条。 MultiColumn 属性设置为 true
时,列表框将显示多个列中的项,并显示水平滚动条。 MultiColumn 属性设置为 false
时,列表框将显示单个列中的项,并显示垂直滚动条。 ScrollAlwaysVisible 设置为 true
时,无论项目数多少,都会显示滚动条。 SelectionMode 属性确定一次可以选择多少列表项。
正文
属性
BackColor | 获取或设置控件的背景色。 |
ColumnWidth | 获取或设置多列 ListBox 中列的宽度。 |
Enabled | 获取或设置一个值,该值指示控件是否可以对用户交互作出响应。 (继承自 Control) |
ItemHeight | 获取或设置 ListBox 中项的高度。 |
Items | 获取 ListBox 的项。 |
MultiColumn | 获取或设置一个值,该值指示 ListBox 是否支持多列。 |
Name | 获取或设置控件的名称。 (继承自 Control) |
ScrollAlwaysVisible | 获取或设置一个值,该值指示是否任何时候都显示垂直滚动条。 |
SelectedIndex | 获取或设置 ListBox 中当前选定项的从零开始的索引。 |
SelectedIndices | 获取一个集合,该集合包含 ListBox 中所有当前选定项的从零开始的索引。 |
SelectedItem | 获取或设置 ListBox 中的当前选定项。 |
SelectedItems | 获取包含 ListBox 中当前选定项的集合。 |
SelectedValue | 获取或设置由 ValueMember 属性指定的成员属性的值。 (继承自 ListControl) |
SelectionMode | 获取或设置在 ListBox 中选择项所用的方法。 |
Sorted | 获取或设置一个值,该值指示 ListBox 中的项是否按字母顺序排序。 |
Tag | 获取或设置包含有关控件的数据的对象。 (继承自 Control) |
Text | 获取或搜索 ListBox 中当前选定项的文本。 |
手动界面添加Item
代码添加项
private void btnAdd_Click(object sender, EventArgs e)
{
lstMain.Items.Add("Andriod");
}
删除选中的选项
private void btnDeleteSelectItem_Click(object sender, EventArgs e)
{
if (lstMain.SelectedItems.Count > 0)
{
for (int i = 0; i < lstMain.SelectedItems.Count; i++)
{
lstMain.Items.Remove(lstMain.SelectedItems[i]);
}
}
}
可以修改SelectionMode试一下多选时,发现会有问题,因为删除Items时,循环最大值会变化
private void btnDeleteSelectItem_Click(object sender, EventArgs e)
{
if (lstMain.SelectedItems.Count > 0)
{
int max = lstMain.SelectedItems.Count-1;
for (int i = max; i >=0 ; i--)
{
lstMain.Items.Remove(lstMain.SelectedItems[i]);
}
}
}
清除
private void btnClear_Click(object sender, EventArgs e)
{
lstMain.Items.Clear();
}
载入列表
internal class User
{
public string Name { get; set; }
public Guid Id { get; set; }
public string Email { get; set; }
}
List<User> users = new List<User>();
private void InitUser()
{
users.Add(new User()
{
Id=Guid.NewGuid(),
Name="张三",
Email="zs@163.com"
});
users.Add(new User()
{
Id = Guid.NewGuid(),
Name = "李四",
Email = "ls@163.com"
});
users.Add(new User()
{
Id = Guid.NewGuid(),
Name = "王五",
Email = "ww@163.com"
});
lstMain.DataSource = users;
lstMain.DisplayMember = "Name";
}
private void lstMain_SelectedIndexChanged(object sender, EventArgs e)
{
txtId.Text = ((User)lstMain.SelectedItem).Id.ToString();
txtName.Text = ((User)lstMain.SelectedItem).Name.ToString();
txtEmail.Text = ((User)lstMain.SelectedItem).Email.ToString();
}
重写ToString()
internal class ListItem
{
public string Name { get; set; }
public string Value { get; set; }
public override string ToString()
{
return Name.ToString();
}
}
修改载入方式
private void lstMain_SelectedIndexChanged(object sender, EventArgs e)
{
txtId.Text = ((ListItem)lstMain.SelectedItem).Value;
txtName.Text= ((ListItem)lstMain.SelectedItem).Name;
}
private void button1_Click(object sender, EventArgs e)
{
lstMain.Items.Add(new ListItem() { Name = "张三", Value = "1" });
lstMain.Items.Add(new ListItem() { Name = "李四", Value = "2" });
lstMain.Items.Add(new ListItem() { Name = "王五", Value = "3" });
}