如何将列表框中的值插入datagridview?

时间:2017-03-10 06:30:27

标签: c# winforms datagridview listbox

在我的代码中,我有2个列表框和1个datagridview。我想将listbox1数据获取到datagridview1 column0,将listbox2数据获取到datagridview column1?

        foreach (var item in listBox1.Items)
            {
                dataGridView1.Rows.Add();
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells[0].Value = item;
                dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells[1].Value = listBox2.Items; 
            }

3 个答案:

答案 0 :(得分:3)

试试这个:

dataGridView1.AutoGenerateColumns = false;
dataGridView1.Rows.Clear();
listBox1.Items.Add("1");
listBox1.Items.Add("2");
listBox1.Items.Add("3");
dataGridView1.Columns.Add("First","First");

foreach (var item in listBox1.Items)
{
    int idx = dataGridView1.Rows.Add();

    dataGridView1.Rows[idx].Cells["First"].Value = item;

}

示例输出:

enter image description here

答案 1 :(得分:2)

item表示存储在ListBox中的项目。因此,如果您想获取所选值的值并在数据网格中显示它,那么:

dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells[0].Value = listBox1.SelectedItems[0].ToString();

将第一个选定项目的值转换为网格。

答案 2 :(得分:0)

创建一个包含所需列的数据表并将其绑定到gridview。

DataTable dt = new DataTable();
dt.Columns.Add("Column1",typeof(datatype));//column 0
dt.Columns.Add("Column2",typeof(datattype));//column 1    
if(ListBox1.Items.Count == ListBox2.Items.Count)
{
for (int i = 0; i < ListBox1.Items.Count; i++)
            {
                dt.Rows.Add(ListBox1.Items[i].Text, ListBox2.Items[i].Text);
            }
            dataGridView1.DataSource = dt;
            dataGridView1.DataBind();
}