Wie Taskdialogs der Show () Aufruf zu blockieren und gibt einen Wert zurück, wenn sie geschlossen ändern?

StackOverflow https://stackoverflow.com/questions/2823286

  •  26-09-2019
  •  | 
  •  

Frage

Ich bin mit der Taskdialog Implementierung des WindowsAPICodePack, aber es nervt mich, dass ich hören Handler auf seinen Tasten selbst für die weitere Grund Implementierungen klicken. Ich möchte es konvertieren / wickeln, so dass, wie das alte MessageBox es blockiert, bis sie geschlossen und dann einen Wert zurückgibt, basierend auf, was getan wurde. Gibt es etwas, das ich für die Grundlagen lesen, wie dies zu tun? Ich habe keine Ahnung, wo sogar beginnen, wie ich bin zwar nicht so vertraut mit der Win32 Untermauerung.

War es hilfreich?

Lösung

Im Fall hilft es jemand, nachdem einige Lesen ich herausgefunden, dass die Show Anruf bereits blockiert. Um einen Wert zurückgeben, implementiert ich eine ExtendedTaskDialog<T> Basisklasse, die ein TaskDialog enthält und eine Helfer Show(Window) Methode, um den Taskdialogs der Eltern und eine abstrakte public T Show(Window) Methode zuweisen. Die tatsächlichen Dialoge ergeben sich aus dieser, und leiten ihre eigene Enum als Basistyp zu liefern, wie MyDialog : ExtendedTaskDialog<MyDialogResult>. Dann intern, MyDialog der Tasten Click-Handler setzen das Ergebnis vor der Close Methode des der inneren TaskDialog aufrufen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top