[wx] An wxListBox Event schicken?
-
Hallo,
ich möchte an eine ListBox ein
wxEVT_COMMAND_LISTBOX_SELECTED
-Event schicken, welches einen simplen Klick auf ein Item ersetzen soll. Jedoch klappt es mit folgender Methode nicht:m_MeineListBox->ProcessEvent(wxListEvent(wxEVT_COMMAND_LISTBOX_SELECTED));
Mal davon abgesehen, dass ich auch nicht weiß, wie man der ListBox sagt, welches Item selektiert werden soll.
Weiß jemand Rat?
-
Wieso benutzt du nicht einfach SetSelection?
-
Weil ich der Listbox per
Connect
einen Eventhandler fürwxEVT_COMMAND_LISTBOX_SELECTED
registriert habe. Sobald also ein Item mit der Maus selektiert wird, passiert etwas bestimmtes.SetSelection
jedoch selektiert nur das Item, löst aber nicht den Event aus, den ich ja brauche, um das auszuführen, was beim echten Klicken auf ein Item auch passiert.
-
Naja, aber du kannst die Handlermethode ja selber direkt danach aufrufen.
Ansonten müsste das mit SetPendingEvent gehen.
-
wxListBox
und alle darunter liegenden Klassen besitzen aber keineSetPendingEvent
Methode. Und wie ich die Eventmethode direkt aufrufen soll, weiß ich leider nicht.Ich muss ja auch den Index des selektierten Items mit übergeben, allerdings finde ich in der
wxListEvent
-Klasse nirgends eine Set-Methode zum Setzen des Wertes, noch bietet mir der Konstruktor dieser Klasse irgendwelche Möglichkeiten.
-
Das müsste doch ein CommandEvent sein.
listbox->SetSelection(3); wxCommandEvent event(wxEVT_COMMAND_TYPE); OnListBoxClicked(event);
Was selektiert wurde, erfährst du ja von der Listbox.
-
Danke, jetzt funktioniert es endlich. Nach Deinem eben genannten Lösungsvorschlag habe ich es ja bereits versucht, allerdings bin ich in eine komplett falsche Event-Methode einer anderen Listbox gerutscht, und hab' mich dabei natürlich total verzettelt.
Bisher habe ich in der Eventmethode immer über das übergebene
wxCommandEvent
Objekt nachgefragt, welches Item selektiert wurde. Dass ich aber auch mitGetSelection
unabhängig vomwxCommandEvent
die aktuelle Selektion abfragen kann, ist mir nicht in den Sinn gekommen.Vielen Dank für die Hilfe phlox.