Comment désactiver la première sélection automatique dans un datagridview VS?

J’ai créé une application dans Visual Studio (C #) qui utilise un datagridview. Désormais, lorsque j’affecte la source de données de cette vue de données, il sélectionne automatiquement la première ligne et exécute mon code pour la sélection. Étant donné que je réaffecte fréquemment cette source de données, ce n’est pas souhaitable. Y a-t-il un moyen de le changer pour qu’il ne fasse pas automatiquement cette première sélection, et repose uniquement sur les sélections de l’utilisateur?

Merci!

En réponse au commentaire de Darshan Joshi: Hormis le code généré automatiquement, la seule chose modifiée dans la vue datagridview est de définir AutoGenerateColumns sur false et de définir la propriété DataSource. J’ai placé un MessageBox.Show dans mon délégué selectionchanged et il semble même qu’il soit appelé trois fois à chaque fois que la source de données est définie. Une fois juste avant le chargement des données et deux fois après.

Je ne peux pas définir False au chargement, car la source de données est définie après certaines actions de l’utilisateur, pas lors de l’initialisation.

Vous devez appeler: ClearSelection after event: DataBindingComplete

vous pouvez le désélectionner dans votre événement form_load comme

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

Pour charger la grid sans aucune sélection, vous pouvez utiliser cet extrait de code.

  GridView.CurrentCell = null; 

Cela le chargera en clair, sans aucune sélection. Ajoutez-le après avoir affecté la source de données à la grid.

Assurez-vous que vous n’appelez PAS la méthode pour charger les données à partir du constructeur de formulaire. Si vous l’appelez à partir de Form.load ()

aussi après le chargement de myDataGridView faire ceci

myDataGridView.Rows [0] .Selected = false;

Cela a fonctionné pour moi:

Annulez l’enregistrement de SelectionChanged juste avant de lier les données, puis réenregistrez l’événement. Peut-être devriez-vous supprimer l’enregistrement de l’événement dans le concepteur et enregistrer l’événement manuellement dans votre code.

myDGV.SelectionChanged -= new System.EventHandler(this.myDGV_SelectionChanged);

Ajoutez simplement SelectedItem = “- 1”, cela fera l’affaire