ListBox控件的利用:
1)控件属性
Items
SelectedItems
SelectioModes
2)数据绑定
DataSoure
DisplayMember
ValueMenber
3)实例
下面开始一一说明上面的ListBox控件的利用。
首先来说控件的属性,
(1)Items:利用此属性获取列表控件项的属性。此属性可用于确定列表控件中的选定项。添加items时既可以设计时静态添加,也可以在代码中动态添加。假如不想显示设计时添加的items,可以在代码中添加this.listBox1.Items.Clear();只显示在代码中添加的选项。
(2)SelectedItems:获取包括ListBox中当前选定项的荟萃。
(3)SelectioModes:获取或配置在ListBox中选择项所用的要领。一共有四个值可选;默认为 SelectionMode.One,只能选中一个;属性值为none时不能选择;当属性MultiExtended 时,按下 Shift 键的同时单击鼠标可能同时Shift 键和箭头键之一(向上键、向下键、向左键和向右键),会将选定内容从前一选定项扩展到当前项。按 Ctrl 键的同时单击鼠标将选择或除掉选择列表中的某项;当该属性配置为MultiSimple 时,鼠标单击或按空格键将选择或除掉选择列表中的某项。
接下来说一哈数据绑定,凡是数据都是可变的,所以说就需要数据绑定。数据绑定有几种,一种就是绑定从数据库中获取的DataTable可能是DataSet;别的一种就是自界说一个类,绑定自界说类中的数据。c#中的数据绑定与ASP.NET中的数据绑定尚有一点区别,ASP.NET中绑定命据后还要挪用一个DataBind要领,而在c#中就不需要。而DisplayMember获取或配置要显示的属性。
最后我们来做一个实譬喻图所示:
下面我们只是说一哈几个重要的要领的实现,详细代码就不在这写了。将左边框中的选项放到右边框中去。代码:
复制代码 代码如下:
for (int i = this.listBox1.SelectedItems.Count - 1; i >= 0;i -- )
{
Menu menu = (menu)this.listBox1.SelectedItems[i];
this.listBox2.Items.Add(menu);
this.listBox1.Items.Remove(i);
}
上面固然实现了成果可是有一个问题,就是左边的项到了右边后酿成了倒序。这是我们需要将添加和移出分隔写,代码:
复制代码 代码如下:
for (int i = 0; i < this.listBox1.SelectedItems.Count;i++ )
{
Menu menu = (menu)this.listBox1.SelectedItems[i];
this.listBox2.Items.Add(menu);
}
for (int i = this.listBox1.SelectedItems.Count - 1; i >= 0; i--)
{
this.listBox1.Items.Remove(i);
}
到此刻为止还一个问题就是当选择框中的前面几个项的时候右移没有问题,但选择后头几个项时移到右边框中的是后头几个项,而左边框中移出的是前面几个项,造成这个问题的原因是我们将
SelectedItems和Items等量齐观了。这是许多初学者容易犯的错误。代码:
复制代码 代码如下:
for (int i = 0; i < this.listBox1.SelectedItems.Count;i++ )
{
Menu menu = (menu)this.listBox1.SelectedItems[i];
this.listBox2.Items.Add(menu);
}
for (int i = this.listBox1.SelectedItems.Count - 1; i >= 0; i--)
{
Menu menu = (menu)this.listBox1.SelectedItems[i];
this.listBox1.Items.Remove(menu);
}
这样的话就对了。
小我私家自学不知说的对差池,但愿列位支持支持,接待指正。
您大概感乐趣的文章: