您的位置:首页 > 编程语言 > C#

C#学习之控件:listbox显示多条数据以及周边操作

2015-08-07 00:19 507 查看
ListBox控件在C#之中,如果采用普通的绑定的方式的话,每行只能显示一个条目,但是如果需要多个信息在同一行里面显示的时候,就会产生一些问题,那么我们该如何解决呢?

绑定的方式:               自己显示: 
                              


                

 
              

 二者对比:



第一种绑定的方式不用复赘,现在就将第二种的思路做一描述:

其实主要是通过ListBox自带的AddItem方法实现的,如下:

this.ListBox1.Items.Add(new ListItem(mm));

整个代码片段如下:


public void show_data()
{
    string strSql = string.Format(@"select MID,MNAME from [member]");
    DbHelp dbh2 = new DbHelp();

    SqlCommand Comm = new SqlCommand(strSql, dbh2.Db_Conn());
    SqlDataReader dr = Comm.ExecuteReader();
    while (dr.Read())
    {
        string mm = dr[0].ToString() + "," + dr[1].ToString();
        this.ListBox1.Items.Add(new ListItem(mm));    }
}

显示的效果如同自己显示:所示,主要是通过“循环新增”的方式,然后将多条数据合成一条数据,放入ListBox条目显示而实现的。

另外一个问题就是,可能我们需要用到ListBox里面的信息,但是又因为一条信息里面的多个字段存在于同一条ListBox 的Item之中,那么提取的时候就需要采用:Split方式,如此处,

string[] info_whole_temp_array = ListBox1.Split(',');

就会得到MID,MANE信息,此处的Split()为自带函数,有多个重载,选择分割的方式以char类型的','(英文逗号),来分割,另外,如果有如下:

string p = "15,s,40,50,60,abc,";

这种形式的存在,那么分割之后,存入到数组之中,有:

info_whole_temp_array[0] ="15"

info_whole_temp_array[1]="s"

info_whole_temp_array[2]="40"

info_whole_temp_array[3]="50"

info_whole_temp_array[4]="60"

info_whole_temp_array[5] ="abc"

info_whole_temp_array[6]=""


整个数组的长度是6,而不是5,最后一个的值是“”(string.Empty)。

另外其实对于DropDownList控件也是一样,它可以认为是ListBox的精简版,可以采用相同的方法,只不过这句:this.ListBox1.Items.Add(new ListItem(mm));之中的ListBox就需要改成DropDownList了:

this.DropDownList1.Items.Add(new ListItem(mm));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  listbox 控件 c#