1. 概述
ListBox控件是Windows Forms中用于显示项目列表的控件,用户可以从列表中选择一个或多个项目。ListBox控件支持单选和多选模式,可以显示文本、图像或两者的组合,是构建用户界面的重要组成部分。
2. 创建ListBox控件
在Windows Forms应用程序中创建ListBox控件有两种主要方法:
2.1 通过设计器创建
- 打开Visual Studio,创建一个Windows Forms项目
- 在工具箱中找到ListBox控件
- 将ListBox控件拖放到窗体上
- 使用属性窗口设置ListBox的属性
3. ListBox控件的常用属性
ListBox控件有许多属性可以设置,以下是一些常用的属性:
| 属性 | 描述 | 示例值 |
|---|---|---|
| Items | 获取ListBox中的项目集合 | listBox1.Items |
| SelectedItem | 获取或设置当前选中的项目 | listBox1.SelectedItem |
| SelectedItems | 获取当前选中的所有项目(多选模式) | listBox1.SelectedItems |
| SelectedIndex | 获取或设置当前选中项目的索引 | listBox1.SelectedIndex |
| SelectedIndices | 获取当前选中项目的索引集合(多选模式) | listBox1.SelectedIndices |
| SelectionMode | 获取或设置选择模式 | SelectionMode.MultiSimple |
| MultiColumn | 是否显示多列 | true/false |
| ColumnWidth | 多列模式下列的宽度 | 100 |
| IntegralHeight | 是否自动调整高度以显示完整的项目 | true/false |
| HorizontalScrollbar | 是否显示水平滚动条 | true/false |
| VerticalScrollbar | 是否显示垂直滚动条 | true/false |
| ItemHeight | 每个项目的高度 | 20 |
| DrawMode | 项目的绘制模式 | DrawMode.Normal |
| DataSource | 获取或设置数据源 | dataTable |
| DisplayMember | 获取或设置要显示的属性 | "Name" |
| ValueMember | 获取或设置值成员属性 | "Id" |
| Enabled | 控件是否可用 | true/false |
| Visible | 控件是否可见 | true/false |
| Location | 控件在窗体上的位置 | new Point(50, 50) |
| Size | 控件的大小 | new Size(200, 150) |
4. ListBox控件的常用事件
ListBox控件有多个事件,以下是最常用的事件:
| 事件 | 描述 | 示例 |
|---|---|---|
| SelectedIndexChanged | 选中的索引发生改变时触发 | private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { } |
| SelectedValueChanged | 选中的值发生改变时触发 | private void listBox1_SelectedValueChanged(object sender, EventArgs e) { } |
| Click | 单击ListBox时触发 | private void listBox1_Click(object sender, EventArgs e) { } |
| DoubleClick | 双击ListBox时触发 | private void listBox1_DoubleClick(object sender, EventArgs e) { } |
| MouseEnter | 鼠标进入ListBox时触发 | private void listBox1_MouseEnter(object sender, EventArgs e) { } |
| MouseLeave | 鼠标离开ListBox时触发 | private void listBox1_MouseLeave(object sender, EventArgs e) { } |
| KeyDown | 按下键盘按键时触发 | private void listBox1_KeyDown(object sender, KeyEventArgs e) { } |
| KeyPress | 按下并释放键盘按键时触发 | private void listBox1_KeyPress(object sender, KeyPressEventArgs e) { } |
| KeyUp | 释放键盘按键时触发 | private void listBox1_KeyUp(object sender, KeyEventArgs e) { } |
5. ListBox控件的常用方法
ListBox控件有一些常用的方法,以下是一些重要的方法:
| 方法 | 描述 | 示例 |
|---|---|---|
| Add(object item) | 向ListBox添加一个项目 | listBox1.Items.Add("台湾省");listBox1.Items.Add(textBox1.Text); |
| AddRange(object[] items) | 向ListBox添加多个项目 | listBox1.Items.AddRange(new string[] { "项1", "项2" }); |
| Clear() | 清除ListBox中的所有项目 | listBox1.Items.Clear(); |
| Remove(object item) | 从ListBox中移除指定的项目 | listBox1.Items.Remove("项1"); |
| RemoveAt(int index) | 从ListBox中移除指定索引的项目 | listBox1.Items.RemoveAt(0); |
| Insert(int index, object item) | 在指定位置插入一个项目 | listBox1.Items.Insert(0, "新项"); |
| Contains(object item) | 判断ListBox是否包含指定的项目 | bool exists = listBox1.Items.Contains("项1"); |
| IndexOf(object item) | 获取指定项目的索引 | int index = listBox1.Items.IndexOf("项1"); |
| ClearSelected() | 清除所有选中的项目 | listBox1.ClearSelected(); |
| SelectAll() | 选中所有项目(多选模式) | listBox1.SelectAll(); |
| BeginUpdate() | 开始更新,防止多次刷新 | listBox1.BeginUpdate(); |
| EndUpdate() | 结束更新,刷新ListBox | listBox1.EndUpdate(); |
6. ListBox控件的选择模式
ListBox控件支持多种选择模式,通过SelectionMode属性设置:
| 选择模式 | 描述 |
|---|---|
| None | 不能选择项目 |
| One | 只能选择一个项目(默认) |
| MultiSimple | 可以选择多个项目,点击即可切换选择状态 |
| MultiExtended | 可以选择多个项目,使用Shift、Ctrl键进行多选 |
7. 完整示例程序
以下是ListBox控件的综合应用示例截图:
图:ListBox控件示例程序运行界面
示例:ListBox控件综合应用
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication5
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//listBox1.Items.Add("台湾省");将字符串添加到列表框1
listBox1.Items.Add(textBox1.Text);//将文本框中的内容添加到列表框1
}
private void button2_Click(object sender, EventArgs e)
{
//listBox1.Items.Remove("河北省");删除指定的项目
//listBox1.Items.RemoveAt(1);删除指定索引号的项目
listBox1.Items.RemoveAt(listBox1.SelectedIndex);//删除选定的索引号的项目
}
private void button3_Click(object sender, EventArgs e)
{
//listBox1.Items.Insert(1,"台湾省");向指定位置插入字符串
//listBox1.Items.Insert(1, textBox1.Text);向指定位置插入文本框的内容
listBox1.Items.Insert(listBox1.SelectedIndex,textBox1.Text);//向选定的索引号位置插入文本框内容
}
private void button4_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();//清空列表框项目
}
}
}
8. 总结
通过本教程的学习,你应该掌握了C# Windows Forms中ListBox列表框控件的使用方法:
- ListBox控件的常用属性设置
- ListBox控件的常用事件处理
- ListBox控件的常用方法
- ListBox控件的选择模式(单选、多选)
ListBox控件是Windows Forms应用程序中常用的控件之一,用于显示和选择项目列表。掌握好ListBox控件的使用方法,对于开发用户友好的桌面应用程序非常重要。在实际开发中,你可以根据具体需求,结合ListBox控件的各种属性和事件,创建出符合用户需求的列表界面。