DataGridView sans la ligne sélectionnée au début

Dans mes WinForms, j’ai DataGridView . Je voulais sélectionner une ligne complète en même temps, donc je définissais SelectionMode sur FullRowSelect . Et maintenant, j’ai un problème, car au début mon formulaire souligne la première ligne (l’ensemble des lignes sélectionnées est vide, la première ligne n’est pas sélectionnée mais simplement soulignée). J’ai essayé beaucoup de choses, telles que:

  private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) { dataGridView1.ClearSelection(); } 

Et tout a échoué, car en fait il n’y a pas de sélection.

Comment puis-je me débarrasser de ce soulignement?

Merci pour toute aide!

Cela fonctionne pour moi:

 private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) { dataGridView1.Rows[0].Selected = false; } 

Malheureusement, aucune de ces réponses ne m’a aidé, mais j’ai trouvé une autre solution. Au lieu d’une sélection impossible, je vais simplement le cacher avec ce morceau de code:

 dataGridView1.DefaultCellStyle.SelectionBackColor = dataGridView1.DefaultCellStyle.BackColor; dataGridView1.DefaultCellStyle.SelectionForeColor = dataGridView1.DefaultCellStyle.ForeColor; 

Donc, si quelqu’un veut juste cacher la sélection, cela fonctionnera plutôt bien.

À votre santé 🙂

Il suffit de mettre dataGridView1.ClearSelection(); en cas de chargement du formulaire.

Essayez cela peut être utile

 private void dgv_order_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) { dgv_order.CurrentCell.Selected = false; dgv_order.ClearSelection(); } 

Essayez de définir DataGridView.AllowUserToAddRows = false dans le constructeur après InitializeComponent() .

Vous devriez essayer de mettre l’événement datagridView.ClearCelection() ainsi que datagridView.CurrentCell=null et par exemple si vous souhaitez sélectionner une ligne pour la suppression ou la modification d’informations, faites-le if(datagridView.CurrentCell==null){ MessageBox.Show("You must select row");} ça marche pour moi

Ce travail pour moi pour une sélection claire sur databind

 Protected Sub GridCancel_DataBinding(sender As Object, e As EventArgs) Handles GridCancel.DataBinding GridCancel.SelectedIndex = -1 End Sub 

Vous pouvez appeler la méthode dataGridView.ClearSelection () dans l’événement form_Load de la manière suivante …

  private void Form1_Load(object sender, EventArgs e) { // You will get selectedCells count 1 here DataGridViewSelectedCellCollection selectedCells = dataGridView.SelectedCells; // Call clearSelection dataGridView.ClearSelection(); // Now You will get selectedCells count 0 here selectedCells = dataGridViewSchedule.SelectedCells; } 

L’événement à définir pour la ligne sélectionnée désactivée au début est le suivant et gère un FLAG pour arrêter ClearSelection.

 private void dataGridView_SelectionChanged(object sender, EventArgs e) { if (FLAG==true) { dataGridView.ClearSelection(); FLAG=false; } } 

Si cela s’explique par le fait qu’il a déclenché un événement indésirable GridView1_SelectionChanged lors du chargement initial, vous pouvez utiliser un indicateur pour le gérer.

 public partial class YourFormName { private bool IsReady= false; private void YourFormName_Load(object sender, EventArgs e) { //Load your GridView1... //Format your GridView1... IsReady = true; } void GridView1_SelectionChanged(object sender, EventArgs e) { if (!IsReady) return; //do the rest of the stuffs } } 

Parfois, lorsque vous rechargez votre formulaire sans fermer votre programme, la première ligne est mise en surbrillance. Mais il ne sera pas sélectionné et vous obtiendrez -1 pour l’index de ligne sélectionné.

Vous pouvez le faire comme ceci:

1. Stockez les styles par défaut lors du chargement du formulaire:

  Public Class aRoots Dim df1, df2, df3, df4 As Color Private Sub aRoots_Load(sender As Object, e As EventArgs) Handles Me.Load df1 = DGV_Root.DefaultCellStyle.SelectionBackColor df2 = DGV_Root.DefaultCellStyle.BackColor df3 = DGV_Root.DefaultCellStyle.SelectionForeColor df4 = DGV_Root.DefaultCellStyle.ForeColor 

2. Modifiez les styles de cellule lors de l’interaction avec datagridview:

 Private Sub LoadRoot() For i = 0 To 5 DGV_Root.Rows.Add() For j = 0 To 3 DGV_Root.Item(j, i).Value = ... Next Next 'DGV_Root.ClearSelection() ==> instead of this use 2 lines below DGV_Root.DefaultCellStyle.SelectionBackColor = df2 DGV_Root.DefaultCellStyle.SelectionForeColor = df4 End Sub 

3. Modifiez les styles de cellule par défaut lorsque la sélection est modifiée, comme cell_click ou cell_double click:

 Private Sub DGV_Root_CellMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles DGV_Root.CellMouseClick DGV_Root.DefaultCellStyle.SelectionBackColor = df1 DGV_Root.DefaultCellStyle.SelectionForeColor = df3 ... End Sub 

4. restaurer tous les parameters par défaut lorsque vous souhaitez fermer le formulaire:

 Private Sub PbClose_Click(sender As Object, e As EventArgs) Handles PbClose.Click BtnCancel.PerformClick() DGV_Root.DefaultCellStyle.SelectionBackColor = df1 DGV_Root.DefaultCellStyle.BackColor = df2 DGV_Root.DefaultCellStyle.SelectionForeColor = df3 DGV_Root.DefaultCellStyle.ForeColor = df4 Me.Close() End Sub 

J’espère que cela vous aidera les gars.