Ich bin ziemlich neu bei vb.net, und die Entwicklung von Windows-Formularen als Ganzes, also könnte das alles sehr einfach sein, aber hier geht es.
Ich möchte ein neues Formular aus einem anderen Formular öffnen und ein ausgewähltes Objekt aus einem Steuerelement in diesem Formular an das neue Formular übergeben. Der vernünftige Weg, dies zu tun, dachte ich, war ein Parameter für den Formularkonstruktor. Jetzt weiß ich, dass die Visual Studio-GUI teilweise Klassen für meine Formulare erstellt, die die Eigenschaften enthalten, die ich dort in den Designer ziehen kann. Ich nehme an, dass es auch einen Standardkonstruktor enthält. Da es alle möglichen Dinge tun könnte, die benötigt werden, um das Formular zu initialisieren, dachte ich, ich sollte es von meinem benutzerdefinierten Konstruktor ala
aufrufen %Vor%Das war es eindeutig nicht, denn es kann keinen Standardkonstruktor finden. Die Sache ist, dass Visual Studio große Anstrengungen unternimmt, um zu verhindern, dass ich den generierten Konstruktor sehe, also weiß ich, wie man darauf zugreift. Das führt mich zu der Annahme, dass ich es falsch mache und einen anderen Weg eingeschlagen haben sollte, da der Weg, zu dem man normalerweise gezwungen wird, der vernünftige Weg ist, den ich meistens viel zu spät finde. p>
Wie sollte ich also so etwas machen?
Dies ist ein ziemlich einfaches Beispiel. Dies geht in Ihre "Haupt" -Form (die Sie Ihr neues Formular nennen wollen):
%Vor% form2Name(item)
bricht zusammen wie "form2Name" ist der Name des Formulars, das Sie öffnen möchten und "item" ist der Parameter, der übergeben werden soll.
Fügen Sie in Ihrem neuen Formular (form2Name) diesen Code hinzu:
%Vor%Sie können in Ihrem Formular alles tun, was Sie brauchen. Hoffe, das hilft.
Ihre abgeleitete Formklasse erbt automatisch den Standardkonstruktor für System.Windows.Forms.Form. Dieser Standardkonstruktor wird automatisch aufgerufen, bevor der abgeleitete Konstruktorcode ausgeführt wird. Der Grund, warum Sie keinen Code für den Standardkonstruktor finden können, liegt darin, dass die abgeleitete Klasse den Standardkonstruktor nicht spezialisiert. Wenn Sie einen eigenen Standardkonstruktor definieren möchten, können Sie dies tun. Sie können auch einen Konstruktor ohne Parameter definieren.
Ihr Code sollte gut funktionieren, wenn Sie diese Zeile entfernen:
%Vor%Tags und Links winforms visual-studio-2008 vb.net