将选定的行从GridView放入列表框

时间:2015-01-28 11:30:20

标签: c# winforms gridview listbox

我正在尝试以下内容:

    List<object>selectedRows = new List<object>();

        foreach (DataGridViewRow row in dataGridView1.SelectedRows)
        {
            selectedRows.Add(row);
        }

      for (int i = 0; i < selectedRows.Count; i++)
        {
            selectedRowsList.Items.Add(selectedRows[i]);
        }

我有一个按钮和GridView。现在我希望用户手动选择行并将它们存储在List中,这样我就可以将它们放入Listbox(值为&#34;&#34;或&#34 ;;&#34;并排)。因此从GridView获取行并将其显示为我的列表框中的一行。多行应该是一个在另一个之下,就像它在GridView中显示的那样。怎么做?我发布的代码将值存储为&#34; {index = ...}&#34;。

2 个答案:

答案 0 :(得分:0)

这是因为Microsoft的ListBox显示DataGridViewRow对象的ToString()方法的值。因此,您可以使用表示DataGridView中每一行的字符串对象填充ListBox。因此,在按钮的单击事件中,我修改了您的代码,如下所示:

    private void button1_Click(object sender, EventArgs e)
    {
        List<string> selectedRows = new List<string>();

        foreach (DataGridViewRow row in dataGridView1.SelectedRows)
        {
            string currentRow = string.Empty;

            foreach (DataGridViewCell cell in row.Cells)
            {
                currentRow += String.Format("{0} ", cell.FormattedValue);
            }

            selectedRows.Add(currentRow);
        }

        for (int i = 0; i < selectedRows.Count; i++)
        {
            this.listBox1.Items.Add(selectedRows[i]);
        }
    }

答案 1 :(得分:0)

foreach (DataGridViewRow  row in dataGridView1.SelectedRows)
        {
            listBox1.Items.Add(row.Cells[0].Value.ToString() +"  "+row.Cells[1].Value.ToString() +"  "+ row.Cells[2].Value.ToString());
        }

当我们使用RowHeader选择行时,我们得到如下结果 enter image description here