在C#中的文本框中显示单元格值

时间:2018-09-20 14:35:07

标签: c# datagridview textbox cell display

我的问题是,当我单击“价格”列下的单元格时,它将仅在文本框中显示datagrid的内容,该列具有Money DataType,除ItemNo为Varchar(100)以外,其他所有类型。请帮助,谢谢

     private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {
            DataGridViewRow row = this.dataGridView1.CurrentRow;
            txtDsc.Text = row.Cells["Description"].Value.ToString();
            txtQty.Text = row.Cells["Qty"].Value.ToString();
            txtUnt.Text = row.Cells["Unit"].Value.ToString();
            txtPrc.Text = row.Cells["Price"].Value.ToString();
            txtRmr.Text = row.Cells["Remarks"].Value.ToString();
    }

2 个答案:

答案 0 :(得分:0)

我不太确定为什么只在单击该单元格时才填充它?我重新创建了您的代码,它可以正常工作。我确实设法使用以下代码重新创建了它:

    private void myDGV_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {
        int row = myDGV.CurrentCell.RowIndex;
        txtDsc.Text = myDGV.Row[row].Cells["Description"].Value.ToString();
        txtQty.Text = myDGV.Row[row].Cells["Qty"].Value.ToString();
        txtUnt.Text = myDGV.Row[row].Cells["Unit"].Value.ToString();
        txtPrc.Text = myDGV.Row[row].Cells["Price"].Value.ToString();
        txtRmr.Text = myDGV.Row[row].Cells["Remarks"].Value.ToString();
    }

答案 1 :(得分:0)

正如另一个答案所指出的那样,代码似乎运行良好。 我怀疑该事件没有触发。尝试放入一个断点并进行调查。

我想您需要的是 CellClick ,而不是CellContentClick。 请参阅CellContentClick event doesn't always work

或者,如果您尝试基于数据网格视图上的选择显示文本框值,请使用 DataGridView.SelectionChanged 事件