Neue Form erstellen mit Programmcode

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von mikeb69.

    Neue Form erstellen mit Programmcode

    Hallo Leute,

    erstmal frohes neues Jahr an alle :=)

    Ich erstelle während meine Anwendung läuft eine neue Form.
    Funktioniert auch alles super nur wenn ich diese aufrufe mit frmBeispiel.show() dann geht das Fenster auf und es passiert nichts.
    Ist ja auch nur logisch, aber wo oder wie kann ich den Programmcode für diese Form (während der Laufzeit erstellt) festegen, z.b. eine Ausgabe wie MsgBox("Test").

    8| ?(

    LG
    Chris
    Danke für den Tipp, nur ich bekomme das nicht umgesetzt ^^



    Habe eine andere Lösung gefunden, die Form wird Global festgelegt und der Code kommt in einen Timer... :)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Chris“ ()

    Wozu, zur Hölle sollte man eine Form zur Laufzeit erzeugen?
    Wenn du dieser zur Laufzeit auch noch Code hinzufügen willst, müßte dieser ja auch noch kompiliert werden. Außerdem muß dir dann auch schon zur Entwurfszeit der benötigte Code bekannt sein. ?(
    Ich denke, das ist ein total be**** Programmdesign. Denk da lieber nochmal drüber, bevor du dir eine Boulete ans Knie nagelst und damit Radio Jerevan zu empfangen versuchst.

    Fiel Fergnügen

    Vatter
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:

    Vatter schrieb:

    Wozu, zur Hölle sollte man eine Form zur Laufzeit erzeugen?
    Wenn du dieser zur Laufzeit auch noch Code hinzufügen willst, müßte dieser ja auch noch kompiliert werden. Außerdem muß dir dann auch schon zur Entwurfszeit der benötigte Code bekannt sein. ?(
    Ich denke, das ist ein total be**** Programmdesign. Denk da lieber nochmal drüber, bevor du dir eine Boulete ans Knie nagelst und damit Radio Jerevan zu empfangen versuchst.

    Fiel Fergnügen

    Vatter


    DU hast nicht verstanden was ich geschrieben habe, les nochmal genau...
    MsgBox() ist erstmal veraltet.

    Um ein DialogResult zu bekommen musst du die Buttons mit den entsprechenden DialogResults belegen, die findest du im Designer in den Eigenschaften der Buttons.

    Nutzen kannst du es dann so

    VB.NET-Quellcode

    1. Using f As New MeineForm
    2. If f.ShowDialog() = DialogResults.OK Then
    3. ' tue irgendwas
    4. End If
    5. End Using
    Hallo,

    Vatter, hat das nicht falsch verstanden.
    Vielleicht verwechselst du das mit dem Erstellen einer Instanz einer Form.

    Erkläre das doch noch mal bitte etwas genauer.

    Gruß

    mikeb69

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „mikeb69“ ()

    Also ich verstehe das so. Cris will sowas machen wie es v-studio macht. Man kann aus seinem Programm eine Form erstellen, diese dann auch mit weiteren Funktionen ausstatten, wie zum Beispiel Buttons usw.
    Wie soll denn das ganze während der Laufzeit kompiliert werden?

    Ich lehn mich ma ausm fenster - Chris löse das so:

    Dein Programm öffnet selbstständig visal studio, tippt dort den Code ein für die Form und kompiliert das selbst. Dann hast du eine weitere Form =)

    Also ich glaub nicht, dass dies mit "normalen" Mitteln geht!
    hi leute,

    während der laufzeit erstellen bezieht sich auf die Form, diese wird aus der anwendung erstellt mit dim pillepalle as new form... (funktioniert ja auch)

    und jetzt kommt der teil den ich ursprünglich meinte, wie erstelle ich für diese form "pillepalle" z.b. ein Private Sub Form1_Load.

    @denis_class: hehe, das ist doch auch mal eine geile idde :P aber du kannst tatsächlich während der laufzeit kompilieren, im .Net Framework liegt ein compiler den du sogar mit einer batch ansprechen kannst, muss nur sagen wo die .vb datei liegt und es wird eine .exe kompiliert.

    8o
    Erstellst die Form im Designer oder komplett via Code??

    Ansonsten

    VB.NET-Quellcode

    1. Using f As New MeineForm
    2. AddHandler f.FormLoad, AddressOf MeineFormLoad
    3. If f.ShowDialog() = DialogResults.OK Then
    4. ' tue irgendwas
    5. End If
    6. End Using
    7. Private Sub MeineFormLoad()
    8. End Sub
    Ich wiederhole mich ungern, aber zur Laufzeit Code zu einer FormXY hinzuzufügen ist absoluter Nonsens!

    Mit dim pillepalle as new form erstellst du lediglich eine Instanz der Klasse Form (was eigentlich auch Blödsinn ist). Diese Form MUSST du VOR dem Debug mit Code versehen.
    Dir scheinen elementare Grundkentnisse zu fehlen, da du offenbar Klasse und Objekt noch nicht auseinanderhalten kannst.
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:
    @dodo: sauber, genau das habe ich gemeint, sieht einfacher aus als ich dachte ^^ vielen dank :=)

    @vatter: es ist ja nicht bekannt wieviele instanzen erstellt werden, deswegen muss ich alles variable halten.

    es sollten anschließend kleine fenster generiert werden, welche die erreichbarkeit von ausgewählten computern überwachen und sich oben links im vordergrund über die anderen programme legen...

    lg
    chris
    Dann kannst du trotzdem deine Form ganz normal im Designer erstellen, alle Controls so anordnen wie du willst und sie dann neu Instanzieren. Sich den Aufwand zu machen und alle Controls manuell zu Positionieren via Code ist verschwendete Zeit.
    Mach deine Form so wie sie aussehen soll, nutze alle Events die du benötigst, Form_Load, Button Klicks usw. und wenn deine Form dann aufrufst machste es so wie in meinem Post beschrieben, natürlich ohne den AddHandler, weil die Handles sind ja bereits schon in der Dummy Form enthalten.
    Hallo Chris,

    wie erstelle ich für diese form "pillepalle" z.b. ein Private Sub Form1_Load

    indem du das zur Designzeit schon alles Programmierst.

    Und zwar in der Form die du instanzieren möchtest selbst.

    Ein Beispiel findest du hier.
    (wird zwar nur eine Instanz erstellt, aber das ist im Prinzip egal)

    Im Beispiel siehst du den Code der einen und der anderen Form.
    Jede logik an ihrem Platz.

    Benötigst du viele Fenster mit unterschiedlichem Verhalten, programmierst du eben mehrere.

    Hier kommt dann Vererbung ins Spiel.
    Das ist aber ein anderes Thema - und führt für den Anfang etwas zu weit.

    Gruss

    mikeb69

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „mikeb69“ ()