c#使用listbox的详细方法和常见问题解决

关于ListBox

ListBox是WinForm中的列表控件,它提供了一个项目列表(一组数据项),用户可以选择一个或者多个条目,当列表项目过多时,ListBox会自动添加滚动条,使用户可以滚动查阅所有选项。ListBox可以预先设定列表内容,也可以绑定其他控件或数据库,自动更新条目,把数据逐一显示出来。

ListBox常用属性

  • *列表索引值,是指列表中的条目的序号,从0开始,如0,1,2,3... ...,当对列表进行增删插入等操作时,条目的排序发生变化,索引亦会变化。
  • *选择项索引,是指选中的项目亦从0开始的序号,当对选中项进行增删等操作时,数目发生变化,索引亦会变化。就好像我叫痴者工良,按照姓名拼音排序,在班级的学号是66,而在班里10个姓痴的同学中,我是3号。

两者区别如下(有颜色背景为选中项):

常用属性 说明
Items  指列表中所有的条目集合,是一个数组集合。可以通过该属性,对列表进行增添、移除或获取列表内容
MultiColumn 用来设置或获取一个值(bool值),表示是否允许多列显示,true表示多列,false表示单列,默认为false。
CoumnWidth 用来获取列表当前列的宽度或设置列表当前列的宽度
SelectionMode
设置列表条目的选择方法。

SelectionMode.None 表示不允许选中

SelectionMode.One 表示只允许用户选择一项

SelectionMode.MultiExtended 表示允许选择多项,但选中的条目必定相连(相邻)

SelectionMode.MultiSimple 表示允许选择多项,可以任意选中多个条目。如下图

SelectedIndex
*获取选中项的索引

未选中任何项时,返回值为 1

单选时,属性值即为选中项的索引

多选时,表示第一项选定项的索引,亦可使用SelectedIndex[i]获取其它选中项索引,亦可让某项变成选中状态。i 为选中项从0开始的序号。

SelectedIndeces 用来获取选中项从0开始的索引的集合,一般只用于多项。与SelectedIndex相似,但SelectedIndeces只有获取索引的能力。
SelectedItem 获取列表当前选中项。注意,获取到的是列表选中项的文本内容,而SelectedIndex和SelectedIndeces获取的只是选中项索引(int)。
SelectedItems
获取选中项的集合,使用SelectedItems[i]来获取选中项的文本内容,i为选中项集合索引。

SelectedItems和SelectedIndex相似,但一个是获取文本字段,一个是获取索引。

Sorted 用来设置或获取列表是否按字母排序(bool)。
Text 获取或搜索列表控件当前选定项的文本。
ItemsCount 用来获取当前列表条目的 数目。

ListBox增加、插入或删除内容

这是通过使用Items属性进行操作的,在visual studio中新建窗口,拖入一个列表控件,控件name为lixtBox1

listBox1.Items.Add("要增加的条目文本");
     //将在列表后面添加
listBox1.Items.Insert(i, "要增加的条目文本");
     //将在索引为i的条目后面插入一条新条目
listBox1.Items.Remove("在此放入你要移除条目的文本内容");
     //删除是用的是文本内容,而不是索引
listBox1.Items.Clear();
    //清空列表所有条目
listBox1.ClearSelected();
    //取消所有选中项,即变为未选中状态

ListBox删除多项内容

很多朋友在这里摔跤,vs老是提示数组超出界限。因为ListBox的删除要通过指定某项的文本,并且只能一项项的删除,而删除一项后索引又会发生变化,所以新手可能会很惘然。下面提供两种删除方式的代码供新手参考。

for (int i=listBox1.SelectedItems.Count-1;i>=0 ;i--)
{      //要从后面往前删除
listBox1.Items.Remove(listBox1.SelectedItems[i]);
      //SelectedItems直接获取选中项的文本
}
//如果你是新手,看不懂上面的代码,别急,跳过这里,先看下面内容内容,后面会详细介绍
for (int i = listBox1.SelectedItems.Count-1; i >=0; i--)
{      //亦是从后删除

listBox1.Items.Remove(listBox1.Items[listBox1.SelectedIndices[i]]);
      //先获取索引,再获取文本内容
}

获取集合的数量

int i = 0;
i=listBox1.Items.Count;
     //获取列表所有条目的数量
i = listBox1.SelectedIndices.Count;
     //获取选中的条目的数量
i = listBox1.SelectedItems.Count;
     //获取选中的条目的数量
     //listBox1.SelectedIndex不能获取数量!请翻阅属性表,有关键词“集合”。能够获取集合的属性,才能获取数量

获取所有选中条目的内容

再新建一个TextBox控件,name为textBox1,代码如下

textBox1.Clear();
textBox1.Text = "选中项的内容为\r\n";
for(int i=0;i<listBox1.SelectedItems.Count ;i++ )
{
   textBox1.Text += +listBox1.SelectedItems[i].ToString()+"\r\n";    

     //逐条读取选中项的内容

}

ListBox单选或多选

点击ListBox控件,在属性一栏找到SelectionMode属性,亦可以代码形式设定,属性说明如下

  • SelectionMode.None 表示不允许选中
  • SelectionMode.One 表示只允许用户选择一项
  • SelectionMode.MultiExtended 表示允许选择多项,但选中的条目必定相连(相邻),鼠标当选中一项后,按键盘↑↓可以选定一个范围的选项,但选项不能间隔选中。如下图:

  • SelectionMode.MultiSimple 表示允许选择多项,可以任意选中多个条目,点一下可以选中一条项目,重复点一下即取消。如下图

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C# ListBox中的Item拖拽代码分享

    我们先来看下运行效果图 Form1.cs代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System

  • C#实现让ListBox适应最大Item宽度的方法

    本文实例讲述了C#实现让ListBox适应最大Item宽度的方法.分享给大家供大家参考.具体实现方法如下: private void button1_Click(object sender, EventArgs e) { for (int i = 1; i <= 16; i++) { listBox1.Items.Add("TTTTTTTTTTTTTTTTTTTTTTTTTTTTT" + i.ToString()); } } private void button2_Click(

  • C#保存listbox中数据到文本文件的方法

    本文实例讲述了C#保存listbox中数据到文本文件的方法.分享给大家供大家参考.具体实现方法如下: private void SaveLstToTxt(ListBox lst) { sfd.Filter = "(*.txt)|*.txt"; if (sfd.ShowDialog() == DialogResult.OK) { string sPath = sfd.FileName; FileStream fs = new FileStream(sPath, FileMode.Crea

  • C#读取文本文件到listbox组件的方法

    本文实例讲述了C#读取文本文件到listbox组件的方法.分享给大家供大家参考.具体实现方法如下: private void AddTxtToLst(string path,ListBox lst) { StreamReader file = new StreamReader(path,Encoding.Default); string s = ""; while (s != null) { s = file.ReadLine(); if (!string.IsNullOrEmpty(

  • C#(WinForm) ComboBox和ListBox添加项及设置默认选择项

    Web控件DropDownList和WinForm控件ComboBox机制不一样. ComboBox没有对应的ListItem需要自己写一个: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace WinListItem { /// <summary> /// 选择项类,用于ComboBox或者ListBox添加项 /// </summary>

  • C#使用checkedListBox1控件链接数据库的方法示例

    本文实例讲述了C#使用checkedListBox1控件链接数据库的方法.分享给大家供大家参考,具体如下: 在数据库中创建三个表: 学生信息表  爱好表   学生爱好表 结果让学生的信息和爱好同时显示到C#窗体上面 using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Diagnostics; using System.Data.Sql;

  • C# CheckedListBox控件的用法总结

    一般认为:foreach (object obj in checkedListBox1.SelectedItems)即可遍历选中的值. 其实这里遍历的只是高亮的值并不是打勾的值.遍历打勾的值要用下面的代码: for (int i = 0; i < checkedListBox1.Items.Count; i++) { if (checkedListBox1.GetItemChecked(i)) { MessageBox.Show(checkedListBox1.GetItemText(check

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

    ListBox控件的使用: 1)控件属性 Items SelectedItems SelectioModes 2)数据绑定 DataSoure DisplayMember ValueMenber 3)实例 下面开始一一说明上面的ListBox控件的使用. 首先来说控件的属性, (1)Items:使用此属性获取列表控件项的属性.此属性可用于确定列表控件中的选定项.添加items时既可以设计时静态添加,也可以在代码中动态添加.如果不想显示设计时添加的items,可以在代码中添加this.listBo

  • C#中CheckedListBox控件的用法实例

    目录 一.常用属性.方法和事件 1.常用属性 2.常用方法 3.常用事件 二.应用实例 1.实例描述 2.属性设置 3.事件处理 4.实现代码 总结 一.常用属性.方法和事件 1.常用属性 (1)CheckOnClick属性 CheckOnClick属性是布尔类型的值,如果为True,那么单击条目就能将条目勾选:如果为false,则要双击条目才能将其勾选. (2)ColumnWidth属性 ColumnWitdh属性是整型数据,表示多列条目各列的列宽.该属性只有在MultiColumn属性(允许

  • C# Winfom 中ListBox的简单用法详解

    1.如何添加listBox的值 this.listBox1.Items.Add("张晓东"); 2.如何判断listBox集合是否添加过 //检查添加值是否添加过 if(this.listBox1.items.Contains("张晓东")){ MessageBox.show("集合成员已添加过!"); } else{ //执行添加集合成员 } 3.如何获取listBox选中的值 //判断所有选中项集合大于0 if(this.listBox1.S

随机推荐