DataGridView valores de columna de la fila seleccionada en el cuadro de texto

programación


Hola, necesito ayuda para obtener los valores de datagridview a cuadros de texto. Tengo una vista de cuadrícula de datos que obtiene datos de SQL que cuenta 4 columnas y el número de filas recuperadas de SQL. Tengo 4 cuadros de texto. Quiero que los valores de columna de la fila seleccionada de Datagridview se muestren en el cajas de texto.

Amablemente consejo sobre lo mismo.

Solución 1

Probablemente querrás responder a la Evento DataGridView.SelectionChanged[^].
En su controlador, verifique si se ha seleccionado una sola fila, luego obtenga los valores de esa fila y colóquelos en los cuadros de texto.

C#
private void DataGridView1_SelectionChanged(object sender, EventArgs e)
{
  if( DataGridView1.SelectedRows.Count = 0 )
  {
    TextBox1.Value = DataGridView1.SelectedRows(0).Cells(0).Value;
    TextBox2.Value = DataGridView1.SelectedRows(0).Cells(1).Value;
    TextBox3.Value = DataGridView1.SelectedRows(0).Cells(2).Value;
    TextBox4.Value = DataGridView1.SelectedRows(0).Cells(3).Value;
  }
}

El código no ha sido probado y puede contener errores tipográficos.

Asegúrate que Propiedad DataGridView.SelectionMode[^] se establece en FullRowSelect para que esto funcione.

Puedes usar Propiedad DataGridView.MultiSelect[^] para asegurarse de que solo se seleccione una fila a la vez.

Solución 3

Hola, ya va bien

C#
private void dgviewSearch_CellcontentClick(object sender, DataGridViewCellEventArgs e)
{
int i;
i = dgViewSearch.SelectedCells[0].RowIndex;
textBox3.Text = dgViewSearch.Rows[i].Cells[1].Value.ToString();
textBox4.Text = dgViewSearch.Rows[i].Cells[3].Value.ToString();
}

Muchas gracias por su ayuda, espero con ansias una selección múltiple en datagridview al cuadro de texto con (coma) como (2001,2002,2003)

Solución 2

Registre el evento MouseClick de la cuadrícula y use el siguiente código.

C#
private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
{
    DataGridViewRow dr = dataGridView1.SelectedRows[0];
    textBox1.Text = dr.Cells[0].Value.ToString();
     // or simply use column name instead of index
    //dr.Cells["id"].Value.ToString();
    textBox2.Text = dr.Cells[1].Value.ToString();
    textBox3.Text = dr.Cells[2].Value.ToString();
    textBox4.Text = dr.Cells[3].Value.ToString();
}

Y agregue la siguiente línea en su evento de carga

C#
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

Solución 8

privado vacío dgvAllUsers_CellContentClick (remitente del objeto, DataGridViewCellEventArgs e)
{

si (e.RowIndex >= 0)
{
Fila DataGridViewRow = this.dgvAllUsers.Rows[e.RowIndex];

textId.Text = fila.Celdas[“idUser”].Valor.ToString();
textFullName.Text = fila.Celdas[“FullName”].Valor.ToString();
textUserName.Text = fila.Celdas[“UserName”].Valor.ToString();
textPassword.Text = fila.Celdas[“Password”].Valor.ToString();
dirección de texto.Texto = fila.Celdas[“Address”].Valor.ToString();
textGender.Text = fila.Celdas[“Gender”].Valor.ToString();
textContactNumber.Text = fila.Celdas[“ContactNumber”].Valor.ToString();
ComboUserType.SelectedText = fila.Celdas[“UserType”].Valor.ToString();
}
}

Solución 9

Utilice siempre el evento GridView1_CellEnt porque si mueve las celdas con las teclas de flecha o hace clic con el mouse, será útil para ambos.
y use siempre if (dataGridView1.SelectedCells.Count > 0); de lo contrario, deberá seleccionar la fila completa.
dataGridView1_CellEnter vacío privado (remitente del objeto, DataGridViewCellEventArgs e)
{
if (dataGridView1.SelectedCells.Count > 0) // asegúrese de que el usuario seleccione al menos 1 fila
{

DataGridToTextboxes(e.RowIndex);

}
}

vacío privado DataGridToTextboxes (int x)
{

cadena Elemento1 = dataGridView1.Rows[x].Células[1].Valor + cadena.Vacío;

// cadena SrNo = filas seleccionadas.Celdas[0].Valor + cadena.Vacío;
// cadena Elemento1 = filas seleccionadas.Celdas[1].Valor + cadena.Vacío;

cadena MinRange = dataGridView1.Rows[x].Células[2].Valor + cadena.Vacío;
cadena MaxRange = dataGridView1.Rows[x].Células[3].Valor + cadena.Vacío;

cadena MinStable = dataGridView1.Rows[x].Células[4].Valor + cadena.Vacío;
cadena MaxStable = dataGridView1.Rows[x].Células[5].Valor + cadena.Vacío;

txtItem.Text = Artículo1;
TextMinRange.Text = MinRange;
TextMaxRange.Text = MaxRange;
TextMinStable.Text = MinStable;
TextMaxStable.Text = MaxStable;
}

コメント

タイトルとURLをコピーしました