我试图创建一个一次选择第1行并在messagebox中打印特定列的程序,但是输出只是第一项,并且将根据我的datagridview中的行数重复。有人知道我错过了什么吗?提前感谢
dgvCart是我的数据视图
私有空button1_Click_2(对象发送方,EventArgs e) { for (int i=0;i< dgvCart.Rows.Count;i++) { dgvCart.ClearSelection();dgvCart.Rowsi.Selected = true;if (dgvCart.SelectedCells.Count > 0) { int选择困倦指数= dgvCart.SelectedCellsi.RowIndex;DataGridViewRow selectedRow = dgvCart.Rowsselectedrowindex;字符串_name = Convert.ToDecimal(selectedRow.Cells"Column3".Value);十进制_quantity =Convert.ToDecimal(selectedRow.Cells“Column3”.Value);MessageBox.Show(“名称:+”数量:“+_quantity.ToString()”;dgvCart.Rowsi.Selected = false;} // string _name = dgvCart.CurrentRow.Cells.Value.ToString();//十进制_quantity =dgvCart.CurrentRow.Cells.Value.ToString}
发布于 2018-10-24 08:07:53
如果您只想显示选定的网格行,那么尝试这个
foreach(DataGridViewRow Rows in this.dataGridViewX1.Rows)
{
if (Rows.Selected)
{
MessageBox.Show("NAME: " +Rows.Cells[0].Value + "Quantity: " + Rows.Cells[1].Value);
}
}如果要显示所有行数据,则为。
然后使用代码
foreach (DataGridViewRow rows in this.dataGridViewX1.Rows)
{
if (rows.IsNewRow) { }
else {
MessageBox.Show(rows.Cells[0].Value.ToString() + "','" + rows.Cells[1].Value.ToString()) ;
}
}发布于 2018-10-24 08:21:08
我只是复制,粘贴您的代码,它运行良好,按照您的期望输出。请看下面的代码:
private void Form1_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("id");
dt.Columns.Add("name");
dt.Columns.Add("quantity");
DataRow dr;
dr = dt.NewRow();
dr["id"] = "1";
dr["name"] = "mobile";
dr["quantity"] = "100";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["id"] = "2";
dr["name"] = "laptop";
dr["quantity"] = "50";
dt.Rows.Add(dr);
this.dataGridView1.DataSource = dt;
}
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
dataGridView1.ClearSelection();
dataGridView1.Rows[i].Selected = true;
if (dataGridView1.SelectedCells.Count > 0)
{
int selectedrowindex = dataGridView1.SelectedCells[i].RowIndex;
DataGridViewRow selectedRow = dataGridView1.Rows[selectedrowindex];
string _name = Convert.ToString(selectedRow.Cells["name"].Value);
decimal _quantity = Convert.ToDecimal(selectedRow.Cells["quantity"].Value);
MessageBox.Show("name: " + "quantity: " + _quantity.ToString());
dataGridView1.Rows[i].Selected = false;
}
}
}https://stackoverflow.com/questions/52963311
复制相似问题