Windows Forms-Klassen

  • VB.NET
  • .NET (FX) 1.0–2.0

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von meggy.

    Windows Forms-Klassen

    Hallo!

    Ich arbeite an einer kleinen IDE für VB.Net. Bisher klappt alles ganz gut, aber wenn ich eine Form aus einer Klasse erstellen will und dann aus einer anderen Klasse darauf zugreifen will, dann kann ich keine globale Variable setzen:

    Visual Basic-Quellcode

    1. Module Module1
    2. Public Form1 As New Class_Form1
    3. Public Form2 As New Class_Form2
    4. Sub Main()
    5. Form1.CreateForm()
    6. Form2.CreateForm()
    7. Application.Run(Form1)
    8. End Sub
    9. '---
    10. Partial Class Class_Form1
    11. Inherits System.Windows.Forms.Form
    12. Public Sub CreateForm()
    13. '(...)
    14. End Sub
    15. End Class
    16. '----
    17. Partial Class Class_Form2
    18. Inherits System.Windows.Forms.Form
    19. Public Sub CreateForm()
    20. '(...)
    21. End Sub
    22. End Class
    23. '---
    24. End Module


    Die Anwendung wird erstellt, aber "sie funktioniert nicht mehr (...)".
    Der Fehler liegt darin:

    Visual Basic-Quellcode

    1. Public Form1 As New Class_Form1
    2. Public Form2 As New Class_Form2


    Wie kann ich das möglichst elegant umgehen?
    Danke!
    *Code-Tag richtig benutzt*

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „meggy“ ()

    Hi meggy,

    du deklarierst zwei Mal die gleiche Variable, in dem Fall Form1.

    Du musst das zweite Form1 in Form2 umändern.

    MFG

    Alex-Digital :D
    ~ Alex-Digital :D

    if(!Internet.VBP.Get<User>("Alex-Digital").IsOnline) this.Close(); :D

    meggy schrieb:

    Wie kann ich das möglichst elegant umgehen?
    1. mach eine WinForms-Anwendung, keine Console,
    2. gugst Du hier.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke. Wie mache ich eine Windows-Forms-Anwendung?? Ich lasse es ja als WinExe compilieren und es wird keine Console geöffnet..

    Deinen Beitrag habe ich schon gekannt, er hat mir aber keine Lösung zu genau meinem Problem geliefert.

    Im Endeffekt machst du auch

    Quellcode

    1. Private WithEvents frm2 As Form2
    . Und als globale Variable funktioniert das eben nicht.
    Dann müsste ich jeder Klasse die anderen Klassen übergeben... so weit war ich schon.

    meggy schrieb:

    Wie mache ich eine Windows-Forms-Anwendung?
    Studio starten (meins spricht englisch),
    New Project => Visual Basic => Windows Forms Application
    oder (je nachdem, welche Sprache Du als primär vorgegeben hast)
    New Project => Other Languages => Visual Basic => Windows Forms Application
    ==> OK und feddich.
    ----------------------

    meggy schrieb:

    es wird keine Console geöffnet
    Da hast Du hier aber einen grotten schlechten Code abgeliefert. Sorry.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich arbeite an einer kleinen IDE für VB.Net.

    Und das mache ich natürlich mit Visual Basic 2010. Natürlich weiß ich wie ich so eine Windows-Forms-Anwendung erstellen kann.

    Da hast Du hier aber einen grotten schlechten Code abgeliefert. Sorry.

    Ich hab nur das Grundschema meines Codes geliefert...

    sonne75 schrieb:

    was da die Konsolen sollen.

    meggy schrieb:

    es wird keine Console geöffnet.
    Es sieht aus wie alles zusammenkopiert und nix verstanden.
    -----------------
    Ja, so isses.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke.

    Ich stell dann einfach das fertige Programm in den Showroom.

    Problem gelöst:

    Visual Basic-Quellcode

    1. Module Module1
    2. Sub Main()
    3. Form1.CreateForm(Form2)
    4. Form2.CreateForm(Form1)
    5. Application.Run(Form1)
    6. End Sub
    7. '---
    8. Partial Class Class_Form1
    9. Inherits System.Windows.Forms.Form
    10. Private Form2 As Class_Form2
    11. Public Sub CreateForm(ByVal By_Form2 As Form)
    12. Form2 = By_Form2
    13. '(...)
    14. End Sub
    15. End Class
    16. '----
    17. Partial Class Class_Form2
    18. Inherits System.Windows.Forms.Form
    19. Private Form1 As Class_Form1
    20. Public Sub CreateForm(ByVal By_Form1 As Form)
    21. Form1 = By_Form1
    22. '(...)
    23. End Sub
    24. End Class
    25. '---
    26. End Module


    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „meggy“ ()