3 Stimmen

wxWidgets 2.9 AutoVervollständigen in wxComboBox benutzerdefiniertes EnterEvent

Ich habe ein Problem mit wxWidgets 2.9 und der wxComboBox AutoComplete-Funktion. Unten ist meine Ereignistabelle, die das ENTER-Ereignis meiner ComboBox nimmt, bei der Eingabe feuere ich OnComboEnter. Wenn ich das tue, bin ich nicht in der Lage, ein Element aus der AutoVervollständigen-Liste auszuwählen, da es direkt die OnComboEnter-Methode auf den Text ausführt, den der Benutzer in die ComboBox eingegeben hat.

BEGIN_EVENT_TABLE(LVFilterPanel, wxPanel)
   EVT_TEXT_ENTER(wxID_ANY, LVFilterPanel::OnComboEnter)
   EVT_CONTEXT_MENU(LVFilterPanel::OnComboContextMenu)
END_EVENT_TABLE()

Meine ComboBox ist wie folgt deklariert:

mFilterString = new wxComboBox(this, LV_FILTER_STRING, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, 0, wxTE_PROCESS_ENTER);

AutoComplete wird mit der Standard-AutoComplete-Methode von wxWidgets 2.9 durchgeführt:

mFilterString->AutoComplete(historyarr);

historyarr ist ein wxArrayString, der mit den Strings gefüllt ist, die zuvor vom Benutzer eingegeben wurden. Die Methode OnComboEnter sieht wie folgt aus:

void LVFilterPanel::OnComboEnter(wxCommandEvent& event) {
    wxCommandEvent ce(wxEVT_COMMAND_BUTTON_CLICKED, LV_FILTER);
    static_cast<wxButton*>(FindWindow(LV_FILTER))->Command(ce);
}

Meine Frage ist jetzt, wie könnte ich die Ereignisbehandlung in einer Weise ändern, dass es in der Lage ist, das Element zuerst auswählen und dann verarbeitet OnComboEnter, so dass der Benutzer in der Lage ist, ein Element zuerst auswählen (oder kann nicht ein Element überhaupt auswählen und direkt drücken Sie Enter, um das Ereignis und die OnComboEnter-Methode zu starten). Vielen Dank im Voraus.

Begrüßt,

Roin

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