1

我有一个包含 3 列的 DataGridView,我希望当我单击一个单元格时,它的内容将被复制到 2 个不同的文本框和 1 个组合框。到目前为止,我遇到的唯一事情是这样的:

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {
        dataGridView1.Rows.CopyTo = txtCveMun.Text;
    }

以上根本不起作用,这只是我在图书馆乱搞的东西。所以我该怎么做?谢谢!

如果有人在乎,这是我填充 DataGridView 的方法:

private void CargaDataGridView()
    {
        conexion.Open();
        try
        {
            cmd.CommandText = "SELECT m.cvemunicipio, m.nombre AS NombreA, e.nombre AS NombreB FROM tbMunicipios m INNER JOIN tbEstados e ON m.CveEstado = e.CVeEstado";
            rd = cmd.ExecuteReader();
            while (rd.Read())
            {
                this.dataGridView1.Rows.Add(rd.GetValue(0), rd.GetValue(1), rd.GetValue(2));
            }
            conexion.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }

编辑

完整的答案是

private void dataGridView1_DoubleClick(object sender, EventArgs e)
    {
        txtCveMun.Text = dataGridView1.SelectedRows[0].Cells["Column1"].Value.ToString();
        txtNomMun.Text = dataGridView1.SelectedRows[0].Cells["Column2"].Value.ToString();
        cbEstado.Text = dataGridView1.SelectedRows[0].Cells["Column3"].FormattedValue.ToString();
    }
4

2 回答 2

0

首先,您必须将 DatagridView 选择模式设置为,FullRowSelect然后您可以通过以下方式获取列的值:

dataGridView1.SelectedRows[0].Cells["ColummName"].Value.ToString();
于 2013-04-21T00:15:50.857 回答
0

如果您想将内容从DataGridView复制到您的控件,例如文本框,您可以使用行和单元格集合来获取CellContentClick事件中单元格的值。

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    txtCveMun.Text = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
}

如果要从单击的当前行中获取单元格的值,则可以使用列名。

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    txtCveMun.Text = dataGridView1.Rows[e.RowIndex].Cells["gridViewColumnName1"].Value.ToString();
    txtSomeControl.Text = dataGridView1.Rows[e.RowIndex].Cells["gridViewColumnName2"].Value.ToString();    
}
于 2013-04-21T00:18:40.543 回答