服务器之家

服务器之家 > 正文

C#入门教程之ListBox控件使用方法

时间:2019-09-04 10:30     来源/作者:脚本之家

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获取或设置要显示的属性。 
最后我们来做一个实例如图所示:


C#入门教程之ListBox控件使用方法
下面我们只是说一哈几个重要的方法的实现,具体代码就不在这写了。将左边框中的选项放到右边框中去。代码:

复制代码代码如下:


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); 


这样的话就对了。 
个人自学不知说的对不对,希望各位支持支持,欢迎指正。

标签:

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字 2019-06-05
叠猫猫队长可以退出吗 叠猫猫队长怎么换队伍
叠猫猫队长可以退出吗 叠猫猫队长怎么换队伍 2019-06-05
逃跑吧少年怎么卡皮肤 逃跑吧少年卡永久皮肤技巧
逃跑吧少年怎么卡皮肤 逃跑吧少年卡永久皮肤技巧 2019-06-21
返回顶部