将选定的行从 GridView 放入列表框
Put selected rows from a GridView to a 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。现在我希望用户手动 select 行并将它们存储在一个列表中,这样我就可以将它们放入一个列表框中(值与“”或“;”并排)。因此,从 GridView 中取出该行并将其显示为我的列表框中的一行。多行应该像在 GridView 中显示的那样,一行在另一行下方)。怎么做?我发布的代码将值存储为“{index = ...}”。
发生这种情况是因为 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]);
}
}
foreach (DataGridViewRow row in dataGridView1.SelectedRows)
{
listBox1.Items.Add(row.Cells[0].Value.ToString() +" "+row.Cells[1].Value.ToString() +" "+ row.Cells[2].Value.ToString());
}
当我们 select 行使用 RowHeader 时,我们得到如下结果
我正在尝试以下操作:
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。现在我希望用户手动 select 行并将它们存储在一个列表中,这样我就可以将它们放入一个列表框中(值与“”或“;”并排)。因此,从 GridView 中取出该行并将其显示为我的列表框中的一行。多行应该像在 GridView 中显示的那样,一行在另一行下方)。怎么做?我发布的代码将值存储为“{index = ...}”。
发生这种情况是因为 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]);
}
}
foreach (DataGridViewRow row in dataGridView1.SelectedRows)
{
listBox1.Items.Add(row.Cells[0].Value.ToString() +" "+row.Cells[1].Value.ToString() +" "+ row.Cells[2].Value.ToString());
}
当我们 select 行使用 RowHeader 时,我们得到如下结果