Accès Direct à DataGridView combobox en un seul clic?

Je suis ennuyé de cliquer une fois pour sélectionner une ligne dans datagridview, puis de cliquer à nouveau pour cliquer sur un contrôle dans cette ligne (dans ce cas une liste déroulante).

Existe-t-il un moyen de configurer cette chose afin que tout cela puisse être fait en un clic de souris au lieu de deux?

24
demandé sur Jeff Atwood 2010-08-10 04:01:06

3 réponses

Modifiez la propriété EditMode de votre contrôle DataGridView en "EditOnEnter". Cela affectera cependant toutes les colonnes.

48
répondu Stuart Helwig 2010-08-10 00:08:30

Si vous souhaitez appliquer sélectivement l'édition en un clic à certaines colonnes, vous pouvez changer la cellule actuelle pendant L'événement MouseDown pour éliminer le clic pour modifier:

// Subscribe to DataGridView.MouseDown when convenient
this.dataGridView.MouseDown += this.HandleDataGridViewMouseDown;

private void HandleDataGridViewMouseDown(object sender, MouseEventArgs e)
{
    // See where the click is occurring
    DataGridView.HitTestInfo info = this.dataGridView.HitTest(e.X, e.Y);

    if (info.Type == DataGridViewHitTestType.Cell)
    {
        switch (info.ColumnIndex)
        {
            // Add and remove case statements as necessary depending on
            // which columns have ComboBoxes in them.

            case 1: // Column index 1
            case 2: // Column index 2
                this.dataGridView.CurrentCell =
                    this.dataGridView.Rows[info.RowIndex].Cells[info.ColumnIndex];
                break;
            default:
                break;
        }
    }
}

Bien sûr, si vos colonnes et leurs index sont dynamiques, vous devrez modifier un peu cela.

2
répondu Zach Johnson 2010-08-10 00:19:44

J'ai pu activer la zone de liste déroulante et la déposer en un seul clic de souris en définissant la propriétéEditMode de DataGridView surEditOnEnter et en créant l'événementEditingControlShowing et en ajoutant du code pour faire tomber la zone de liste déroulante dans cet événement.

Pour plus de détails, veuillez consulter - http://newapputil.blogspot.in/2015/08/add-combo-box-in-cell-of-datagridview.html

0
répondu nvivekgoyal 2015-08-26 10:30:24