如何将项目发送到列表框并在每行上有一个项目

时间:2018-05-17 23:11:46

标签: c#

我有这个代码,它将数据库中以listform格式的单元格中的项目发送到lsitbox。 但是当它在数据库中加载时,它会显示在一个长列表中,而不是每个新项目都会转到新行。

任何人都可以帮忙吗?

private void ItemCBx_SelectedIndexChanged(object sender, EventArgs e)
{

    Listbox1.Items.Clear();
    MAcon.Open();
    OleDbDataAdapter da = new OleDbDataAdapter("Select Process from [Product Family] Where [Product Name] = @ProductName", MAcon);
    da.SelectCommand.Parameters.AddWithValue("@ProductName", ItemCBx.SelectedItem.ToString());
    DataTable dtbl = new DataTable();
    da.Fill(dtbl);

    if (dtbl.Rows.Count == 1)
    {
        Listbox1.Items.Add(dtbl.Rows[0][0]);
    }

    MAcon.Close();
    Listbox1.Show();
    Listbox1.Text.ToString().Split(',').ToList().ForEach(r => Listbox1.Items.Add(r.Trim()));
    //           Define.SelectedIndex = 1;
}

3 个答案:

答案 0 :(得分:1)

ListBox1.Text返回所选项;因为您没有选择任何项目,所以它返回一个空字符串。

在拆分列表之前选择第一项......

ListBox1.SelectedIndex = 0;
Listbox1.Text.ToString().Split(',').ToList().ForEach(r => Listbox1.Items.Add(r.Trim()));

...或直接拆分ListBox的第一个元素

Listbox1.Items[0].ToString().Split(',').ToList().ForEach(r => Listbox1.Items.Add(r.Trim()));

答案 1 :(得分:0)

你也可以这样写

Listbox1.Items.Clear();
MAcon.Open();
OleDbDataAdapter da = new OleDbDataAdapter("Select Process from [Product Family] Where [Product Name] = @ProductName", MAcon);
da.SelectCommand.Parameters.AddWithValue("@ProductName", ItemCBx.SelectedItem.ToString());
DataTable dtbl = new DataTable();
da.Fill(dtbl);
ListBox1.DataSource = dtbl;

ListBox1.DisplayMember = "Process ";
ListBox1.ValueMember = "Process";
MAcon.Close();
Listbox1.Show();    
//           Define.SelectedIndex = 1;

答案 2 :(得分:0)

创建另一个列表框,在那里发送初始项目然后从第二个列表框发送到初始列表框

Listbox1.Items.Clear();
MAcon.Open();
OleDbDataAdapter da = new OleDbDataAdapter("Select Process from [Product Family] Where [Product Name] = @ProductName", MAcon);
da.SelectCommand.Parameters.AddWithValue("@ProductName", ItemCBx.SelectedItem.ToString());
DataTable dtbl = new DataTable();
da.Fill(dtbl);
ListBox2.DataSource = dtbl;

ListBox2.DisplayMember = "Process ";
ListBox2.ValueMember = "Process";
MAcon.Close();
Listbox2.Show();    
            listBox2.Text.ToString().Split(',').ToList().ForEach(r => Listbox1.Items.Add(r.Trim()));

//