我正在尝试以下内容:
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;。
答案 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选择行时,我们得到如下结果