[ad_1]
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.
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
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.
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
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 ;
}
[ad_2]
コメント