VS2005: Startobjekt / Startform definieren

24/08/2008 - 12:02 von Alberto Luca | Report spam
Hallo NewsGroup,

wo kann ich ein Startobjekt definieren und in welcher Datei wird das
gespeichert?
(relevant, falls in einer Solution mehrere Projekte enthalten sind)

wo kann ich die Startform (innerhalb eines Projekts) definieren und in
welcher Datei wird das gespeichert?

In VB kann auch eine Sub innerhalb eines Moduls angegeben werden, in der
dann eine Instanz einer Form erzeugt wird und auf diese Instanz kann dann
global zugegriffen werden, um z.B. aus einer untergeordenten Klasse auf die
Statusbar der MainForm zuzugreifen.
Wie verhàlt es sich beim Starten in C#?

Besten Dank vorab!
Ciao, Alberto
 

Lesen sie die antworten

#1 Frank Dzaebel
24/08/2008 - 13:56 | Warnen spam
Hallo Alberto,

wo kann ich ein Startobjekt definieren und in welcher Datei wird das
gespeichert?
(relevant, falls in einer Solution mehrere Projekte enthalten sind)



[Gewusst wie: Ändern des Startobjekts für eine Anwendung]
http://msdn.microsoft.com/de-de/lib...74w0c.aspx

Gespeichert wird das dann in der "Projektname.csproj"
Datei normal unter:
<StartupObject>Projektname.Program</StartupObject>
wenn es denn auch gesetzt wurde.


wo kann ich die Startform (innerhalb eines Projekts) definieren und in
welcher Datei wird das gespeichert?



Das ist nicht so wie in VB (->Startformular), in C# gibt man normal einfach
das Startobjekt an.
Bzw. es ist teilweise auf "nicht festgelegt" gesetzt, wodurch die Main z.B.
aus Program.cs genommen wird. Die Main-Methode definiert den beim Laden der
Anwendung aufzurufenden Einstiegspunkt (oft in Program.cs, aber auch, wenn
in einer Form die (statische) Main-Methode implementiert ist, z.B. in der
Form-Klasse).

[Main-Methode (C#)]
http://msdn.microsoft.com/de-de/lib...88074.aspx

[/main (Speicherort der Main-Methode angeben) (C#-Compileroptionen)]
http://msdn.microsoft.com/de-de/lib...ht538.aspx

Hier ein Beispiel dafür, was normal automatisch erstellt wird:

/// <summary>Der Haupteinstiegspunkt für die Anwendung.</summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1()); // StartForm über Code definiert
}

Da Klassenbibliotheken über keinen Einstiegspunkt verfügen,
ist ihre einzige Option für Startobjekt-Eigenschaft: "Nicht festgelegt".




[...] auf diese Form-Instanz kann dann global zugegriffen werden, um z.B.
aus einer untergeordenten Klasse auf die Statusbar der MainForm
zuzugreifen. Wie verhàlt es sich beim Starten in C#?



zunàchst - allgemein - die Anzahl globaler Variablen sollte
man eher niedrig halten.
Du kannst auf die Hauptforminstanz normal mit
Application.OpenForms[0]
zugreifen, oder selber diese Instanz im Form_Load etwa
einer globalen Variablen zuweisen. Das wird in C# natürlich
nicht einfach automatisch gemacht.


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen