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

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(strSqldbh2.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));






你可能感兴趣的:(C#)