ListBox 列表框控件

本教程将详细介绍C# Windows Forms应用程序中ListBox列表框控件的使用方法,包括基本属性设置、数据绑定、事件处理、样式定制等内容,帮助您掌握列表框控件的各种应用场景。

1. 概述

ListBox控件是Windows Forms中用于显示项目列表的控件,用户可以从列表中选择一个或多个项目。ListBox控件支持单选和多选模式,可以显示文本、图像或两者的组合,是构建用户界面的重要组成部分。

2. 创建ListBox控件

在Windows Forms应用程序中创建ListBox控件有两种主要方法:

2.1 通过设计器创建

  1. 打开Visual Studio,创建一个Windows Forms项目
  2. 在工具箱中找到ListBox控件
  3. 将ListBox控件拖放到窗体上
  4. 使用属性窗口设置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控件示例程序运行界面

示例: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控件的各种属性和事件,创建出符合用户需求的列表界面。