Ouvrez la liste déroulante (dans une vue datagrid) des éléments en un seul clic
Comment puis-je éviter le double clic sur un DropDownButton
utilisé dans un DataGridView
? En ce moment, je suis en mesure de voir les éléments de baisse vers le bas dans le DataGridView
en cliquant deux ou plusieurs fois. Première fois qu'il sélectionne la cellule et la deuxième fois quand je clique sur le DropDownButton
flèche, il montre la liste. Comment puis-je obtenir la même chose en un seul clic?
3 réponses
vous pouvez y parvenir en vous abonnant pour l'événement EditingControlShowing
de la grille et là pour le contrôle de type ComboBox
ComboBox ctl = e.Control as ComboBox;
ctl.Enter -= new EventHandler(ctl_Enter);
ctl.Enter += new EventHandler(ctl_Enter);
et dans L'événement Enter, utiliser la propriété
void ctl_Enter(object sender, EventArgs e)
{
(sender as ComboBox).DroppedDown = true;
}
DroppedDown indique comme le nom suggère si la zone de dropdown est montrée ou non, donc chaque fois que la commande est entrée cela la définira à true et afficher les articles sans avoir besoin de clics supplémentaires.
la propriété "définir le mode D'édition de DataGridView à EditOnEnter" a fonctionné pour moi, mais j'ai trouvé un autre problème: l'utilisateur ne peut pas supprimer une ligne en sélectionnant et en appuyant sur la touche DEL. Ainsi, une recherche google m'a donné une autre façon de le faire. Il suffit d'attraper L'événement CellEnter et de vérifier si la cellule est le type approprié pour effectuer l'action appropriée comme CE Code échantillon:
private void Form_OnLoad(object sender, EventArgs e){
dgvArmazem.CellEnter += new DataGridViewCellEventHandler(dgvArmazem_CellEnter);
}
void dgvArmazem_CellEnter(object sender, DataGridViewCellEventArgs e)
{
DataGridView dg = (DataGridView)sender;
if (dg.CurrentCell.EditType == typeof(DataGridViewComboBoxEditingControl))
{
SendKeys.Send("{F4}");
}
}
maintenant le ComboBox descend plus vite et l'utilisateur supprime encore une ligne en sélectionnant une ligne et en appuyant sur la touche SUPPR.
C'est ça.