2009-04-02 9 views
0

J'ai un DataGridView qui contient une zone de liste déroulante (DataGridViewComboBoxColumn). Cette zone de liste déroulante est remplie avec un ensemble de valeurs d'installation. Ces valeurs de configuration peuvent être désactivées de sorte que seules les valeurs actives soient affichées dans la zone de liste déroulante, cependant, les entrées existantes (enregistrements) qui utilisent les valeurs inactives doivent toujours être affichées.DataGridViewComboBox - Afficher la valeur 'InActive' dans DataGridView

Je peux boucler avec succès les éléments de la grille et si un enregistrement a une valeur qui n'est plus active (c'est-à-dire une partie des éléments DataGridViewComboBoxCell), je l'ajoute simplement aux éléments pour ce DataGridViewComboBoxCell.

Problème:

Je ne peux pas trouver un endroit pour mettre ce code tel que je ne reçois pas la redoutée « valeur DataGridViewComboBoxCell est pas valide. »

Par exemple, je peux mettre ce code dans l'événement Paint de DataGridView et les fonctions de grille parfaitement. Aucun problème avec l'édition/mise à jour des valeurs et je n'ai aucun problème en termes d'affichage (la valeur inactive est toujours affichée) ... Cependant, elle renvoie toujours la valeur 'DataGridViewComboBoxCell n'est pas valide.' Erreur.

Question:

Où puis-je ajouter du code (ou comment) pour ajouter une valeur « inactif » après les valeurs actives ont été ajoutées à la zone de liste déroulante (DataGridViewComboBoxColumn), mais avant que les documents sont liés à éviter d'avoir cette erreur?

Répondre

1

Qu'en est-il simplement d'intercepter l'erreur datagridview et de ne rien faire avec.

void dataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs e) 
{ 
    e.Cancel = true; 
} 

// Add code in user interface 
dataGridView1.DataError += 
    new DataGridViewDataErrorEventHandler(dataGridView1_DataError); 
Questions connexes