Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将DataGridView内容复制到多个文本框中_C#_Sql_Winforms_Datagridview_Textbox - Fatal编程技术网

C# 将DataGridView内容复制到多个文本框中

C# 将DataGridView内容复制到多个文本框中,c#,sql,winforms,datagridview,textbox,C#,Sql,Winforms,Datagridview,Textbox,我有一个3列的DataGridView,我希望当我单击一个单元格时,它的内容将被复制到2个不同的文本框和1个组合框中。到目前为止,我遇到的唯一问题是: private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { dataGridView1.Rows.CopyTo = txtCveMun.Text; } 以上这些根本不起作用,只是

我有一个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();
    }

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

dataGridView1.SelectedRows[0].Cells["ColummName"].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();    
}

谢谢,@Obama,但是我应该在哪里将DatagridView选择模式设置为FullRowSelect呢?我明白你的意思,但我不明白该在哪里做什么只要选择DatagridView并转到属性面板并搜索选择模式:是的,我刚想出来:但是我应该在哪里放置DatagridView 1.SelectedRows[0].Cells[ColumName].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();    
}