我正在尝试创建一个程序,一次选择第1行并在消息框中打印特定的列,但输出只是第一项,并且将根据datagridview中的行数重复进行输出。有人知道我想念什么吗?预先感谢
dgvCart是我的datagridview
private void button1_Click_2(对象发送者,EventArgs e)
{ for (int i = 0 ; i < dgvCart.Rows.Count; i++) { dgvCart.ClearSelection(); dgvCart.Rows[i].Selected = true; if (dgvCart.SelectedCells.Count > 0) { int selectedrowindex = dgvCart.SelectedCells[i].RowIndex; DataGridViewRow selectedRow = dgvCart.Rows[selectedrowindex]; string _name = Convert.ToString(selectedRow.Cells["Column1"].Value); decimal _quantity = Convert.ToDecimal(selectedRow.Cells["Column3"].Value); MessageBox.Show("NAME: " + "Quantity: " + _quantity.ToString()); dgvCart.Rows[i].Selected = false; } // string _name = dgvCart.CurrentRow.Cells[0].Value.ToString(); // decimal _quantity = Convert.ToDecimal(dgvCart.CurrentRow.Cells[2].Value.ToString()); } }
答案 0 :(得分:1)
如果您只想显示选中的行,然后尝试
foreach(this.dataGridViewX1.Rows中的DataGridViewRow行)
{
if (Rows.Selected)
{
MessageBox.Show("NAME: " +Rows.Cells[0].Value + "Quantity: " + Rows.Cells[1].Value);
}
}
要显示所有行数据
使用代码时
foreach(this.dataGridViewX1.Rows中的DataGridViewRow行)
{
if (rows.IsNewRow) { }
else {
MessageBox.Show(rows.Cells[0].Value.ToString() + "','" + rows.Cells[1].Value.ToString()) ;
}
}
答案 1 :(得分:0)
我只是复制粘贴了您的代码,根据您的期望输出,它可以正常工作。请看下面的代码:
ng update