Benutzerdefiniertes Dialogfeld in C #?

8

Ich habe eine Schaltfläche, die beim Klicken auf ein Dialogfeld mit verschiedenen Steuerelementen wie Optionsfeldern und Textfeldern angezeigt wird. Wenn OK, werden die Werte in diesem Dialogfeld an die Schaltfläche zurückgegeben und der Rest des Codes wird mit diesen Werten verarbeitet. Wenn Abbrechen, dann tu nichts.

Wie kann ich das tun? Ich dachte daran, mit diesen Steuerelementen ein anderes Formular zu erstellen, und diese Schaltfläche ruft das neue Formular auf, aber ich möchte, dass der Rest der Steuerelemente anhält, bis das Formular wie ein Dialogfeld abgeschlossen ist.

    
Jack 02.08.2011, 09:46
quelle

5 Antworten

31

1.) Erstellen Sie das Formular, über das Sie gesprochen haben, mit allen notwendigen UI-Elementen. Fügen Sie auch eine OK- und Abbrechen-Schaltfläche hinzu.

2.) Legen Sie im Eigenschaftenbereich für die Schaltflächen OK und Abbrechen die DialogResult-Werte auf OK bzw. auf Abbrechen fest. Darüber hinaus können Sie die CancelButton-Eigenschaft des Formulars auch auf die von Ihnen erstellte Cancel-Schaltfläche festlegen.

3.) Fügen Sie dem Dialog zusätzliche Eigenschaften hinzu, die den Werten entsprechen, die Sie zurückgeben möchten.

4.) Um den Dialog anzuzeigen, tun Sie etwas in der Art von

%Vor%     
dotnetnate 02.08.2011, 09:52
quelle
4

Sie können dies tun. Erstellen Sie ein neues Formular. Von Ihrem Hauptformular aus können Sie ein benutzerdefiniertes Formular aufrufen mit:

%Vor%

Stellen Sie sicher, dass Sie dem benutzerdefinierten Formular die entsprechende Schaltfläche hinzufügen, und legen Sie ihre DialogResult-Eigenschaft auf OK, Abbrechen oder irgendetwas anderes fest.

    
Husein Roncevic 02.08.2011 09:53
quelle
1

Irgendwo im Code, der über den Dialog verfügt, können Sie das Ergebnis auch explizit festlegen. Sie könnten beispielsweise den folgenden Code in einen Ereignishandler für den Klickvorgang einfügen.

%Vor%     
geekly 23.08.2013 19:18
quelle
0

Eine Möglichkeit wäre, ein Ereignis in Ihrem Dialogformular zu erstellen. Abhängig davon, wie viele Werte Sie zurücksenden möchten, können Sie nur Parameter in der Ereignisdelegate haben. Eine bessere Möglichkeit besteht darin, eine kleine Klasse oder Struktur für Argumente zu erstellen, die eine Liste von Eigenschaften enthalten, die Sie zurückgeben möchten.

Wenn Sie auf OK klicken, feuern Sie das Ereignis mit den Werten aus dem Dialogfeld ab. Zum Abbrechen wird das Ereignis nicht ausgelöst.

Im Formular mit dem Button verbinden Sie einen Handler für das Event. Dies empfängt Ihre Werte und Sie können dann mit ihnen tun, was Sie brauchen.

Ссылка

    
ScruffyDuck 02.08.2011 09:52
quelle
0
  • Fügen Sie dem Windows-Formular Schaltflächen hinzu. Normalerweise benenne ich die Schaltflächen entweder als cmdOK oder cmdCancel

  • Definieren Sie die Schaltflächen Abbrechen und OK in der Dialogmaske

    
Jim Lahman 11.07.2016 15:06
quelle

Tags und Links