C#列表框、复选列表框、组合框的用法实例

C#列表框、复选列表框、组合框的用法实例

列表框(ListBox)的用法

基本用法

列表框是Windows Forms中的一个控件,用于在提供选项列表(一个或多个)的窗体或对话框中选择单个选项,它的常用属性有:

  • DataSource:列表框的数据源对象;
  • DisplayMember:指定数据绑定时显示的属性名;
  • ValueMember:指定数据绑定时使用的属性名;
  • SelectionMode:列表框的选择模式,可选用单选和多选两种模式。

例如:

DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("ID", typeof(int)));
dt.Columns.Add(new DataColumn("Name", typeof(string)));
dt.Rows.Add(1, "Tom");
dt.Rows.Add(2, "Jerry");
dt.Rows.Add(3, "Lucy");

this.listBox1.DataSource = dt;
this.listBox1.DisplayMember = "Name";
this.listBox1.ValueMember = "ID";
this.listBox1.SelectionMode = SelectionMode.MultiSimple;

上面的代码用 DataTable 来作为数据源,设置了显示的属性为 Name,使用的属性为 ID,选择模式为 MultiSimple,这意味着用户可以选择多个选项,选择结果通过 SelectedValues 属性获取,如下所示:

foreach (object item in this.listBox1.SelectedItems)
{
    DataRowView dr = item as DataRowView;
    Console.WriteLine(dr.Row["ID"].ToString() + " " + dr.Row["Name"].ToString());
}

列表框选项的添加、删除、清空

在不使用数据绑定的情况下,我们可以通过 Items 属性来添加、删除和清空列表框的选项。

this.listBox2.Items.Clear();
this.listBox2.Items.Add("选项一");
this.listBox2.Items.Add("选项二");
this.listBox2.Items.Add("选项三");
this.listBox2.Items.Add("选项四");

this.listBox2.Items.RemoveAt(1);
this.listBox2.Items.Remove("选项四");

复选列表框(CheckedListBox)的用法

基本用法

复选列表框是 Windows Forms 中的一个控件,是列表框的一个扩展,与列表框最大的不同就是本身就可支持多项选择。其常用属性有:

  • DataSource:复选列表框的数据源对象;
  • DisplayMember:指定数据绑定时显示的属性名;
  • ValueMember:指定数据绑定时使用的属性名;
  • CheckOnClick:指示是否单击项时就激活或取消复选框;
  • SelectionMode:复选列表框的选择模式,可选用单选和多选两种模式。

例如:

DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("ID", typeof(int)));
dt.Columns.Add(new DataColumn("Name", typeof(string)));
dt.Rows.Add(1, "Tom");
dt.Rows.Add(2, "Jerry");
dt.Rows.Add(3, "Lucy");

this.checkedListBox1.DataSource = dt;
this.checkedListBox1.DisplayMember = "Name";
this.checkedListBox1.ValueMember = "ID";
this.checkedListBox1.CheckOnClick = true;
this.checkedListBox1.SelectionMode = SelectionMode.MultiSimple;

上面的代码用 DataTable 来作为数据源,设置了显示的属性为 Name,使用的属性为 ID,启用了单击项就激活复选框,并且选择模式为 MultiSimple,这意味着用户可以选择多个选项,选择结果通过 CheckedItems 属性获取,如下所示:

foreach (object item in this.checkedListBox1.CheckedItems)
{
    DataRowView dr = item as DataRowView;
    Console.WriteLine(dr.Row["ID"].ToString() + " " + dr.Row["Name"].ToString());
}

复选列表框选项的添加、删除、清空

在不使用数据绑定的情况下,我们可以通过 Items 属性来添加、删除和清空复选列表框的选项。

this.checkedListBox2.Items.Clear();
this.checkedListBox2.Items.Add("选项一");
this.checkedListBox2.Items.Add("选项二");
this.checkedListBox2.Items.Add("选项三");
this.checkedListBox2.Items.Add("选项四");

this.checkedListBox2.Items.RemoveAt(1);
this.checkedListBox2.Items.Remove("选项四");

组合框(ComboBox)的用法

基本用法

组合框是 Windows Forms 中的一个控件,它能够处理一个下拉列表和一个用户输入的文本框。当用户单击组合框时,其下拉列表中的项将会弹出。如果用户在文本框中键入数值,组合框将会根据显示样式自动格式化文本。它的常用属性有:

  • DataSource:组合框的数据源对象;
  • DisplayMember:指定数据绑定时显示的属性名;
  • ValueMember:指定数据绑定时使用的属性名;
  • DropDownStyle:指定组合框中的下拉列表的样式,可选用三种下拉列表方式,Simple,DropDown和DropDownList三种;
  • Text:组合框文本框中的文本字符串;
  • Items:组合框中所有项的集合。

例如:

DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("ID", typeof(int)));
dt.Columns.Add(new DataColumn("Name", typeof(string)));
dt.Rows.Add(1, "Apple");
dt.Rows.Add(2, "Banana");
dt.Rows.Add(3, "Orange");

this.comboBox1.DataSource = dt;
this.comboBox1.DisplayMember = "Name";
this.comboBox1.ValueMember = "ID";
this.comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;

this.comboBox1.SelectedIndex = 1;

上面的代码用 DataTable 来作为数据源,设置了显示的属性为 Name,使用的属性为 ID,选择样式为 DropDownList,这意味着用户不能输入任意文本,只能从数据源中的选项列表中选择。同时设置了默认选择索引为1,即“Banana”这一选项。

组合框选项的添加、删除、清空

在不使用数据绑定的情况下,我们可以通过 Items 属性来添加、删除和清空组合框的选项。

this.comboBox2.Items.Clear();
this.comboBox2.Items.Add("选项一");
this.comboBox2.Items.Add("选项二");
this.comboBox2.Items.Add("选项三");
this.comboBox2.Items.Add("选项四");

this.comboBox2.Items.RemoveAt(1);
this.comboBox2.Items.Remove("选项四");

示例一

创建一个程序,用列表框选择一个图片,再通过PictureBox控件把选择的图片显示出来。

首先要在项目的“引用”中添加“System.Drawing”命名空间:

using System.Drawing;

在Form中添加一个列表框控件和一个PictureBox控件,代码如下:

private void Form1_Load(object sender, EventArgs e)
{
    // 增加图片选项
    DirectoryInfo dir = new DirectoryInfo("Images");
    foreach (FileInfo file in dir.GetFiles())
    {
        if (file.Extension.ToLower().Equals(".jpg"))
        {
            this.listBox1.Items.Add(file.Name);
        }
    }
}

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    string filename = "Images\\" + this.listBox1.SelectedItem.ToString();
    Image img = Image.FromFile(filename);
    this.pictureBox1.Image = img;
}

上面的代码首先增加图片选项到列表框中,然后在 SelectedIndexChanged 事件中获取选择项的文件名,再通过 Image.FromFile 方法读取图片文件,最后显示到 PictureBox 控件上。

示例二

创建一个程序,用组合框选择不同字体,并可通过控制RadioButton和CheckBox控件来设置其字体大小和样式。

在Form中添加ComboBo控件、RadioButton控件和CheckBox控件3个控件,代码如下:

private void Form1_Load(object sender, EventArgs e)
{
    foreach (FontFamily ff in FontFamily.Families)
    {
        this.comboBox1.Items.Add(ff.Name);
    }
    this.comboBox1.SelectedIndex = 0;
    this.radioButton1.Checked = true;
}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    Font font = new Font(this.comboBox1.SelectedItem.ToString(), 16);
    if (this.radioButton1.Checked)
    {
        font = new Font(this.comboBox1.SelectedItem.ToString(), 16, FontStyle.Regular);
    }
    else if (this.radioButton2.Checked)
    {
        font = new Font(this.comboBox1.SelectedItem.ToString(), 16, FontStyle.Bold);
    }
    else if (this.radioButton3.Checked)
    {
        font = new Font(this.comboBox1.SelectedItem.ToString(), 16, FontStyle.Italic);
    }

    if (this.checkBox1.Checked) font = new Font(font, FontStyle.Underline);
    if (this.checkBox2.Checked) font = new Font(font, FontStyle.Strikeout);

    this.label1.Font = font;
}

上面的代码首先加载了所有系统字体到组合框中,然后在 SelectedIndexChanged 事件中根据各个控件的状态创建字体对象,并将其作为 Label 的字体。其中主要的代码如下:

Font font = new Font(this.comboBox1.SelectedItem.ToString(), 16);
if (this.radioButton1.Checked)
{
    font = new Font(this.comboBox1.SelectedItem.ToString(), 16, FontStyle.Regular);
}
else if (this.radioButton2.Checked)
{
    font = new Font(this.comboBox1.SelectedItem.ToString(), 16, FontStyle.Bold);
}
else if (this.radioButton3.Checked)
{
    font = new Font(this.comboBox1.SelectedItem.ToString(), 16, FontStyle.Italic);
}

if (this.checkBox1.Checked) font = new Font(font, FontStyle.Underline);
if (this.checkBox2.Checked) font = new Font(font, FontStyle.Strikeout);

this.label1.Font = font;

其中首先通过 ComboBox 控件选择的字体名称来创建 Font 对象,然后根据 RadioButton 控件选择的样式,设置字体对象的样式。最后根据 CheckBox 控件确定是否需要设置 Underline 和 Strikeout 样式。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#列表框、复选列表框、组合框的用法实例 - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • C#多线程Singleton(单件)模式模板

    C#多线程Singleton(单件)模式模板是一种在多线程环境下保证对象只被创建一次并且可以被多线程共享的设计模式。下面我将提供一个完整的攻略来帮助大家了解如何在C#中实现多线程Singleton模式。 步骤一: 创建Singleton模板类 创建一个Singleton模板类,确保只有一个实例可以被创建。示例代码如下: public sealed class…

    C# 2023年5月31日
    00
  • 在asp.net中使用加密数据库联接字符串保证数据安全

    在ASP.NET中,可以使用加密数据库连接字符串的方式来保障数据库的安全性。具体步骤如下: 1. 生成加密密钥 在ASP.NET中,可以使用System.Web.Security中的方法生成一个加密密钥。在Global.asax.cs中添加以下代码: void Application_Start(object sender, EventArgs e) { /…

    C# 2023年5月31日
    00
  • 详解c# Emit技术

    当我们需要在C#中动态生成IL代码时,C# Emit技术就变得非常有用了。本文将详细介绍C# Emit技术,并提供两个示例来帮助您更好地理解它。 C# Emit技术 C# Emit技术是.NET框架提供的一项功能强大的动态代码生成技术。通过它,我们可以使用C#代码动态地生成并编译IL代码,实现很多与程序运行时生成代码有关的场景。 C# Emit技术一般用于以…

    C# 2023年5月15日
    00
  • Docker安装部署Net Core实现过程解析

    Docker安装部署Net Core实现过程解析 Docker是一种容器化技术,可以将应用程序及其依赖项打包到一个容器中,使其可以在任何环境中运行。在本文中,我们将讨论如何使用Docker安装和部署.NET Core应用程序。 步骤1:安装Docker 在开始之前,您需要在您的计算机上安装Docker。您可以从Docker官网下载并安装Docker。 步骤2…

    C# 2023年5月16日
    00
  • C#的this关键字的2种用法

    C#中的this关键字有两种主要的用法,分别是限定当前对象和作为参数传递。下面将详细讲解这两种用法。 限定当前对象 在C#中,每个实例对象都有一个对于所在的类的引用。在实例方法中,可以使用this关键字来引用当前对象。这种用法主要有以下两个作用: 区分实例变量和局部变量 在方法链式调用中提高代码可读性 区分实例变量和局部变量 当实例变量和局部变量同名时,为了…

    C# 2023年5月15日
    00
  • C# PLINQ 内存列表查询优化历程

    C# PLINQ 内存列表查询优化历程 问题描述 我们有一个包含1千万个元素的列表,每个元素包含两个整数字段,需要进行查询和统计操作。最初使用普通的Linq查询,但在大数据情况下性能明显不足。 解决方案 我们使用PLINQ(Parallel LINQ,即并行LINQ)来优化查询。PLINQ是Linq的一个扩展,可以在多个线程中并行执行查询,提高查询效率。 步…

    C# 2023年6月7日
    00
  • C#获取文件夹所占空间大小的功能

    要实现该功能,可以使用C#内置的System.IO命名空间下的DirectoryInfo类和FileInfo类。下面是详细的步骤: 使用DirectoryInfo类创建文件夹的实例。 DirectoryInfor dirInfo = new DirectoryInfo(@"C:\Users\Administrator\Desktop\Example…

    C# 2023年6月1日
    00
  • C#程序最小化到托盘图标操作步骤与实现代码

    实现将C#程序最小化到托盘图标需要完成以下几个步骤: 绑定系统托盘控件:在窗体上添加一个ContextMenu控件,然后在程序启动的时候绑定到系统托盘控件上。 private NotifyIcon notifyIcon; private void BindNotifyIcon() { notifyIcon = new NotifyIcon(); notify…

    C# 2023年6月6日
    00
合作推广
合作推广
分享本页
返回顶部