J'ai un DataGridView chargé de montrer un bit de données et deux de mes colonnes permettent l'entrée de l'utilisateur en utilisant des comboboxes. Le problème est qu'une colonne n'a besoin que d'afficher des valeurs prédéfinies dans sa liste, mais que l'autre doit à la fois montrer les préréglages et permettre à l'utilisateur d'entrer ses propres valeurs.Détection de la colonne qui affiche un contrôle d'édition dans un datagridview
i accomplissons ceci en montrant le contrôle d'édition pour le combobox avec ce morceau de code:
Private Sub DGV_EditingControlShowing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DGV.EditingControlShowing
'todo: figure out which control is being edited (the reason or the action) and only allow the action column to allow user input
If TypeOf e.Control Is DataGridViewComboBoxEditingControl Then
Dim cb As ComboBox = e.Control
cb.DropDownStyle = ComboBoxStyle.DropDown
End If
End Sub
Cela permet l'entrée d'utilisateur sur les deux comboboxes dans le DGV, mais je veux seulement permettre l'utilisateur entrée pour l'un d'entre eux.
Est-il possible de détecter quelle colonne de la DGV provient du contrôle d'édition afin que je n'exécute pas ce code pour les deux colonnes?
Ai-je une meilleure façon de le faire?
travaillé parfaitement! Merci! il y a tellement de choses à contrôler, je me perds facilement. – jrsconfitto
Que faire si je veux vérifier le texte de l'en-tête? comme ... 'Si DGV.Column.HeaderText =" xyz "puis' – Arbaaz
Nevermind, j'ai trouvé la solution .. 'Si DataGridView1.Columns (DataGridView1.CurrentCell.ColumnIndex) .HeaderText =" Entrer Quantité "Then' – Arbaaz