2013-04-21 2 views
1

У меня есть DataGridView с 3 столбцами, и я хочу, чтобы при щелчке по ячейке содержимое из него будет скопировано в 2 разных текстовых поля и 1 combobox. До сих пор, единственное, что я пришел в это что-то вроде этого:Скопируйте содержимое DataGridView в несколько текстовых полей

 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); 
     } 
    } 

EDIT

Полный ответ на это

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(); 
    } 

ответ

0

Сначала вы должны установить Режим выбора DatagridView до FullRowSelect, то вы можете получить значение столбца:

dataGridView1.SelectedRows[0].Cells["ColummName"].Value.ToString(); 
+0

Спасибо, @Obama, но где мне «установить режим выбора DatagridView для FullRowSelect»? –

+0

Я понимаю, что вы говорите, но я не понимаю, что делать –

+0

Просто выберите DatagridView и перейдите на панель свойств и найдите режим выбора :) – Obama

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();  
} 
+0

Спасибо, я проверю это, и я свяжусь с вами, как только смогу. –

+0

Спасибо за ваш вклад! Мой ответ - лакомый кусочек. –

Смежные вопросы