DataGridView a sélectionné les valeurs de colonne de la ligne dans la zone de texte

la programmation


Bonjour, j’ai besoin d’aide pour obtenir les valeurs de datagridview dans les zones de texte, j’ai un datagridview qui récupère les données de SQL qui compte 4 colonnes et le nombre de lignes récupérées à partir de SQL, j’ai 4 zones de texte, je veux que les valeurs de colonne de la ligne sélectionnée par datagridview soient zones de texte.

Veuillez donner des conseils à ce sujet.

Solution 1

Vous voudrez probablement répondre au Événement DataGridView.SelectionChanged[^].
Dans son gestionnaire, vérifiez si une seule ligne a été sélectionnée, puis récupérez les valeurs de cette ligne et placez-les dans les zones de texte.

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

Le code n’a pas été testé et peut contenir des fautes de frappe.

Assurez-vous que le Propriété DataGridView.SelectionMode[^] est réglé sur FullRowSelect pour que cela fonctionne.

Vous pouvez utiliser Propriété DataGridView.MultiSelect[^] pour vous assurer qu’une seule ligne est sélectionnée à la fois.

Solution 3

Salut, ça va bien maintenant

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

Merci beaucoup pour votre aide, j’attends avec impatience une sélection multiple sur datagridview dans une zone de texte avec, (virgule) comme (2001,2002,2003)

Solution 2

Enregistrez l’événement MouseClick de la grille et utilisez le code suivant.

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

Et ajoutez la ligne suivante dans votre événement de chargement

C#
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

Solution 8

private void dgvAllUsers_CellContentClick (expéditeur d’objet, DataGridViewCellEventArgs e)
{

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

textId.Text = rangée.Cellules[“idUser”].Value.ToString();
textFullName.Text = rangée.Cellules[“FullName”].Value.ToString();
textUserName.Text = rangée.Cellules[“UserName”].Value.ToString();
textPassword.Text = ligne.Cells[“Password”].Value.ToString();
textAddress.Text = rangée.Cellules[“Address”].Value.ToString();
textGender.Text = rangée.Cells[“Gender”].Value.ToString();
textContactNumber.Text = rangée.Cellules[“ContactNumber”].Value.ToString();
ComboUserType.SelectedText = rangée.Cells[“UserType”].Value.ToString();
}
}

Solution 9

Utilisez toujours l’événement GridView1_CellEnt car si vous déplacez vos cellules avec les touches fléchées ou cliquez avec la souris, cela sera utile pour les deux.
et utilisez toujours if (dataGridView1.SelectedCells.Count > 0) sinon vous devez sélectionner la ligne complète.
dataGridView1_CellEnter privé vide (expéditeur d’objet, DataGridViewCellEventArgs e)
{
if (dataGridView1.SelectedCells.Count > 0) // assurez-vous que l’utilisateur sélectionne au moins 1 ligne
{

DataGridToTextboxes(e.RowIndex);

}
}

privé vide DataGridToTextboxes (int x)
{

chaîne Item1 = dataGridView1.Rows[x].Cellules[1].Value + chaîne.Empty;

// chaîne SrNo = selectedRows.Cells[0].Value + chaîne.Empty;
// chaîne Item1 = selectedRows.Cells[1].Value + chaîne.Empty;

chaîne MinRange = dataGridView1.Rows[x].Cellules[2].Value + chaîne.Empty;
chaîne MaxRange = dataGridView1.Rows[x].Cellules[3].Value + chaîne.Empty;

chaîne MinStable = dataGridView1.Rows[x].Cellules[4].Value + chaîne.Empty;
chaîne MaxStable = dataGridView1.Rows[x].Cellules[5].Value + chaîne.Empty;

txtItem.Text = Article1 ;
TextMinRange.Text = MinRange ;
TextMaxRange.Text = MaxRange ;
TextMinStable.Text = MinStable ;
TextMaxStable.Text = MaxStable ;
}

コメント

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