2 Stimmen

Weg zu bekommen AutoVervollständigen arbeiten in einer DataGridViewComboBoxColumn?

Ich habe bereits erfolgreich die Autovervollständigung in einem regulären Kombinationsfeld aktiviert. Ich habe das Leave-Ereignis verwendet, um die Auswahl auf Null zu setzen, wenn der Benutzer etwas eingibt, das nicht in der Liste ist.

Nun möchte ich dies in einer DataGridViewComboBoxColumn tun. Es fehlen jedoch die üblichen Eigenschaften wie AutoCompleteMode und AutoCompleteSource. Ich habe gehört, dass es eine Möglichkeit gibt, dies mit Hilfe von Casting irgendwie zu erreichen, aber ich kann die VB-Anweisungen nicht so gut lesen. Idealerweise möchte ich eine neue abgeleitete Klasse erstellen, so dass ich dieses Ding einfach immer wieder verwenden kann.

Das andere Problem ist, dass ich wissen muss, welches Ereignis abzufangen, um die Combobox auf ihren alten Wert oder null zurückzusetzen, wenn das Element nicht in der Liste ist.

Für Hilfe wären wir dankbar! Danke!

6voto

V4Vendetta Punkte 35598

Sie können diese Funktion erhalten, indem Sie das EditingControlShowing-Ereignis des Grids implementieren. Wenn Sie eine Combobox-Spalte bearbeiten, ist das Editier-Steuerelement im Grunde eine Combobox Durch Casting können Sie also die Eigenschaften für Autocomplete einstellen

void grdPerformanceScenario_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    {
        if (e.Control is ComboBox)
        {
            (e.Control as ComboBox).AutoCompleteMode = AutoCompleteMode.Suggest;
            (e.Control as ComboBox).AutoCompleteSource = AutoCompleteSource.ListItems;
        }
    }

0voto

pepe Punkte 1

Es gibt eine AutoComplete para DataGridViewComboBoxColumn .

Zum Beispiel:

DataGridViewComboBoxColumn comboBox = DataGridViewComboBoxColumn();
combobox.AutoComplete = true;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X