Hallo !
Wir haben zu ComboBoxen auf unseren Masken ein Kontextmenü hinzugefügt, das unter anderem den Punkt "Rückgängig" enthält.
Sinn dieses Menüpunktes ist es, nachdem der Anwender aus der Itemliste einen anderen Eintrag ausgewählt hat, den vorhergehenden wieder herstellen zu können.
Wir hatten angenommen, dass dies so geht:
SendMessage(mComboBox.Handle, WM_UNDO, 0, 0);
Leider tut sich bei Ausführung dieser Anweisung gar nichts.
Ebenso wenig bei dieser Fassung:
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
SendMessage(FindWindowEx(mComboBox.Handle,IntPtr.Zero,string.Empty,string.Empty), WM_UNDO, 0, 0);
Weiss jemand Rat?
Mit freundlichen Grüßen,
Brendan
Die Lösung ist immer ganz einfach.
Nur der Weg dorthin ist schwierig!
Hi,
also ich kenne keine Combobox, die nach Drücken von Strg-Z die vorherige Auswahl wiederherstellt. Das mußt du schon selbst programmieren, schätze ich.
Christian
Weeks of programming can save you hours of planning
Hallo Brendan,
vermutlich bezieht sich das WM_UNDO nur auf das Editieren des Textes innerhalb des TextBox-Teils der ComboBox (wirkt also bei reinen DropDownListen gar nicht). Ein Undo was die Selektion anbetrifft muss man wohl selber implementieren.
herbivore
Hallo Brendan,
eine Eigenschaft, die in einer ComboBox eine Historie enthält ist mir nicht bekannt.
Ich würde hier mit einem Dictionary arbeiten, in dem jeder Wechsel vermerkt wird. Im QuellCode kannst du dann die Message entsprechend auswerten und in der ComboBox den vorherigen Wert wieder einstellen.
Gruß, Karl
Oder eben gleich eine Klasse ableiten und mit entsprechender Funktion versehen. Dann macht man sich die Arbeit wenigstens nur ein Mal 😉
Hallo telfa,
Ich würde hier mit einem Dictionary arbeiten
vermutlich besser ein Stack oder gleich sowas wie Multilevel-Undo/-Redo mit dem Command-Muster.
herbivore
Falls Du ein Databinding hast...
Suchbegriffe:
CancelCurrentEdit
BindingManagerBase
CurrencyManager
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...