Frage

Wenn ich bei einigen Klassen im Rahmen suchen, mit Reflektor, kann ich sehen, dass Formen und Bedienelemente sind aus privaten und verschachtelt in einer übergeordneten Klasse.

Zum Beispiel habe ich eine Steuerung, die Verwendung von Pop-up-Form macht, die diese Kontrolle spezifisch ist. Im Moment mache ich den Pop-up-Form Freund zugänglich. Wenn ich es den Rahmen Weg machen wollte, würde ich es privat und nisten sie in die Steuerklasse. Wenn ich das tue, kann ich jedoch nicht mehr die ide verwenden Sie das Formular zu entwerfen und ich Fehler, wenn ich zu kompilieren versuchen. Also, ich habe 2 Fragen:

(1) Sie Microsoft etwas in letzter Minute zu Nest tut alles, was privat?

(2) Ist die Art und Weise der bevorzugte Weg, oder soll ich bleibe bei meinem Freund Accessoren?

War es hilfreich?

Lösung

Die verschachtelte Form ist besser, weil es richtig Einkapselung erzwingt und bedeutet die endgültige Kontrolle wird in einem schönen ordentlichem Paket für die Verteilung am Ende. Wenn keiner von denen ein Anliegen ist für halten Sie es Ihren Weg. Aber wenn Sie wollen zumindest versuchen, die Klasse nisten, können Sie etwas tun:

  1. Verwenden Sie den Designer verschachtelte Form außerhalb der Klasse als gewohnt zu bauen.
  2. Fügen Sie eine zweite leer Form als private verschachtelte Form, wie sie in den CLR Beispielen mit dem gleichen Namen zu tun wie das Formular, das Sie in Schritt 1 gebaut.
  3. Migrieren Sie den Code aus *.designer.vb oder *.designer.cs für Ihre erste Form an den Konstruktor für Ihre zweite Form. Es wird meist nur eine große Copy / Paste sein.
  4. Nehmen Sie das Formular aus Schritt 1. Sie möchten von möglicherweise erhalten sie eine eigene Klasse Bibliothek-Projekt zu bewegen, so dass Sie verwenden können, wenn Sie Änderungen vornehmen müssen.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top