列表框(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技术站