Projekte in Projektmappe starten (steuern)

Terminator2

Erfahrenes Mitglied
Hallo,

Und zwar habe ich mehrere einzelne Projekte, die ich in einer Projektmappe zu einer "Toolsammlung" zusammenfassen will. Meine Projektmappe enthält mein übergeordnetes Projekt, welches dann mittels Button-Klick andere Projekte aus der Projektmappe starten soll. Ich habe dabei an Form1.Show gedacht etc.
Am besten wäre es natürlich, wenn ich sogar Zugriff auf die Objekte und Funktionen des Projektes hätte, damit ich mehr Schritte automatisieren kann. Beispielsweise klicke ich in meinem Oberprojekt auf Daten auslesen, welches mein Unterprojekt öffnet. Dieses sollte dann automatisch den vom Oberprojekt vorgegebenen Dateipfad übernehmen und die Datei somit öffnen. Wäre meiner Meinung nach etwas komisch, wenn das in VS2008 nicht ginge ;)

Ich hoffe, Ihr wisst was ich meine und könnt mir helfen.


Gruß David
 

Fabsch

Erfahrenes Mitglied
Hallo,

normalerweise einfach einen Verweis auf das Projekt, auf das du zugreifen willst und in der entsprechenden Quelltext-Datei ein using (C#) bzw Imports (Visual Baisc) oder wie auch immer das in deiner Sprache heißt (ich weiß ja nicht welche Sprache du benutzt ;) ) mit dem entsprechenden Namespace, den du im anderen Projekt benutzen willst und dann kannst du da einzelne Forms draus aufrufen ;) (aber vorher musst du erst die anderen Projekte erstellen und dann das Projekt mit dem du auf die anderen Projekte zugreifen willst).

MfG
Fabsch
 

Terminator2

Erfahrenes Mitglied
Moin,

Also das mit imports habe ich jetzt hinbekommen. Über Verweis hinzufügen habe ich den Verweis des Unterprojektes eingefügt. Ich benutze Visual Basic auf Visual Studio 2008 Professional falls das was ausmacht. Jedenfalls habe ich dann über imports in meinem Oberprojekt den Namespace eingefügt. Nur leider habe ich wenig Möglichkeiten:
Ich kann nicht auf Public-Variablen oder Funktionen/Prozeduren zugreifen...
Kann man das irgendwie ändern? :)


Gruß David
 

Fabsch

Erfahrenes Mitglied
Hallo,

du musst auch erst eine neue Instanz der Klasse erzeugen, um auf normale public-Variablen bzw Funktionen zugreifen zu können ;)

MfG
Fabsch
 

Fabsch

Erfahrenes Mitglied
Einfach so (Classname durch den Namen deiner Klasse (also dem Namen des Forms) ersetzen):
Code:
Classname form = New Classname()
' und dann kannst du mit form. auf die Funktionen und Variablen zugreifen (Funktionen und Variablen nach dem . nach form)

MfG
Fabsch
 

Terminator2

Erfahrenes Mitglied
Also wenn ich das richtig verstanden habe, soll das so ähnlich aussehen (Code funktioniert leider nicht).
Fehlermeldung: "Form1" ist ein Typ in "DrawGlasses" und kann nicht als Ausdruck verwendet werden

Hier der Code
Code:
Imports DrawGlasses

Public Class Form1
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        End
    End Sub

    Public Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim Fenster As New Form()
        Fenster = DrawGlasses.Form1

    End Sub
End Class

Gruß David
 

Fabsch

Erfahrenes Mitglied
Hallo,

In dieser Zeile musst du bereits die Instanz erzeugen (ich denke zumindest, dass das in Visual Basic so ist):
Visual Basic:
Dim Fenster As New Form1()

Und dann kannst du auf das Form zugreifen und anzeigen usw!

Also der gesamte Code:
Visual Basic:
Imports DrawGlasses

Public Class Form1
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        End
    End Sub

    Public Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim Fenster As New Form1()
        Fenster.Show ' ich weiß nicht, wie man in Visual Basic Methoden aufruft, aber soweit ich mir die bisherigen Codes alle angeschaut habe, müsste das so stimmen ;)

    End Sub
End Class

MfG
Fabsch
 

Terminator2

Erfahrenes Mitglied
Also mit dem .Show hast du Recht. Der Code ist fast vollständig, habe den Rest grad selber hinbekommen. Hier der funktionierende Code:

Code:
Imports DrawGlasses

Public Class Form1
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        End
    End Sub

    Public Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim Fenster As New DrawGlasses.Form1()
        Fenster.Show()
    End Sub
End Class

Auf jeden Fall ein dickes Lob an dich, das hat sehr viel geholfen, jetzt kann meien Projektmappe ja mal richtig komplex werden ;)

Gruß David