下面介绍取得ListBox被选择的项目或者设定的方法。在这之前先说明一下ListBox项目的选择方法。
ListBox项目的选择方法
ListBox有两种类型,一种是只能选择一项项目,另一种是可以选择多项项目。通过ListBox控件的SelectionMode属性可以设定。当SelectionMode属性设定为None时,ListBox的项目是不能被选择。设定为One时,只能选择一项项目(以下称为「单一选择ListBox」)。如果想多项项目选择时,设定SelectionMode属性为MultiExtended或为MultiSimpl(以下称为「复数选择ListBox」)。在设定为MultiExtended时,开发者可以使用Ctrl键或Shift键方法选择复数项目。在设定为MultiSimple时是不能使用Ctrl键或Shift键,点击或Space键可以一项一项的选择。
取得ListBox被选择的项目
接下来,说明取得ListBox被选择项目的方法。
在设定单一选择ListBox时,通过SelectedItem以及SelectedIndex属性可以取得被选择项目的索引号码。或者被选择项目的文本,可以通过 Text属性取得。ValueMember属性被指定时,使用SelectedValue属性可以取得被选择项目的值。
在设定复数选择ListBox时,通过SelectedItems以及SelectedIndices属性,取得被选择的所有项目和收集的索引号码。
而且可以使用GetSelected方法检测被指定的项目是否被选择。
[C#]
//取得被选择的项目
//复数选择ListBox,可以返回任意被选择项目
Console.WriteLine("被选择项目:{0}", ListBox1.SelectedItem);
//取得被选择项目的索引号码
//没有被选择项目时-1
//复数选择ListBox,可以返回任意被选择项目的号码
Console.WriteLine("被选择项目的索引号码:{0}",
ListBox1.SelectedIndex);
//取得被选择项目的文本
//复数选择ListBox,返回最初被选择项目的文本
Console.WriteLine("被选择项目的字符串:{0}", ListBox1.Text);
//检测被指定索引号码的项目是否被选择 Console.WriteLine("0号的项目被选择了吗:{0}", ListBox1.GetSelected(0)); //所有被选择的项目取得
Console.WriteLine("所有被选择的项目:");
for (int i = 0; i < ListBox1.SelectedItems.Count; i++)
{
Console.WriteLine(" {0}", ListBox1.SelectedItems[i]);
}
//所有被选择的项目的索引号码取得
Console.WriteLine("所有被选择的项目的索引号码:");
for (int i = 0; i < ListBox1.SelectedIndices.Count; i++)
{
Console.WriteLine(" {0}", ListBox1.SelectedIndices[i]);
}
在ListBox选择项目
下面对在ListBox选择项目的方法进行说明。
通过SelectedIndex属性可以指定想选择项目的索引号码,然后进行选择。或者使用SetSelected方法同样也可以通过索引号码进行项目选择。ValueMember属性被指定时,通过SelectedValue属性可以指定选择项目的值。
通过SelectedItem或Text、SelectedValue属性可以选择项目,这里在ListBox中如果有相同的项目、相同的文本时,只能选择最初被检测到的项目。
在复数选择ListBox,指定的项目变更为被选择状态时,首先要通过ClearSelected方法清空被选择的项目。
[C#]
//清空ListBox中被选择的项目
ListBox1.ClearSelected();
//选择3~6号的项目
for (int i = 2; i <= 5; i++)
{
ListBox1.SelectedIndex = i;
}
//在ListBox中如果存在100(数字)时,成为最初的选择项目
ListBox1.SelectedItem = 100;
//在ListBox中如果有文本"100"时,成为最初的选择项目
ListBox1.Text = "100";
//选择10号的项目
ListBox1.SetSelected(9, true);