首页 文章

如何在datagridview中一次选择第1行并使用messagebox显示

提问于
浏览
0

我试图创建一个程序,一次选择第1行并打印消息框中的特定列,但输出只是第一项,将根据我的datagridview中的行数重复 . 谁知道我失踪了什么?提前致谢

dgvCart是我的datagridview

private void button1_Click_2(object sender,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());

}

}

2 回答

  • 0

    我只是复制粘贴你的代码,它按照你想要的输出工作正常 . 请看下面的代码:

    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;
                }
            }
        }
    
  • 1

    IF YOU WANT TO SHOW ONLY SELECTED ROWS OF GRID THEN TRY THIS

    foreach(Data.dridViewRow在this.dataGridViewX1.Rows中的行)

    {
                if (Rows.Selected)
                {
                    MessageBox.Show("NAME: " +Rows.Cells[0].Value +  "Quantity: " + Rows.Cells[1].Value);
    
                }
            }
    

    IF YOU WANT TO SHOW ALL ROWS DATA

    然后使用该代码

    foreach(this.dataGridViewX1.Rows中的DataGridViewRow行)

    {
                if (rows.IsNewRow) { }
                else {
                    MessageBox.Show(rows.Cells[0].Value.ToString() + "','" + rows.Cells[1].Value.ToString()) ;
                    }
            }
    

相关问题