Hallo!
System: .NET 2.0 C#2.0 (VS 2005)
Ich möchte eine MDI APP erstellen. Wenn der Anwender nun ein Fenster öffnet, möchte ich am unteren Bildschirmrand einen TAB-Reiter haben wo alle offenen Fenster eingetragen sind und der Anwender einfach zwischen den Fenstern wechseln kann. Ist das mit dem Standard TAB-Control möglich, gibt es dafür eventuell wo ein Beispiel? Ich bin ein Neueinsteiger was C# und Windows anbelangt.
Danke
Markus
Für sowas musst du bei Codeproject schauen: Suchergebnisse für "mdi tab".
A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee
Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.
Danke für den Link, leider habe ich nur Beispiele für .NET 1.x gefunden, nichts für .Net 2.x und VS 2005
Gruß
Markus
Hallo SatMAX,
in der Regel lassen sich 1.1 Beispiele (zumindest nach einer Neuübersetzung, aber eigentlich auch so) auch unter 2.0 verwenden.
herbivore
Normalerweise MUSS jede API abwertskompatibel sein. D.h. alle 1.1 Beispiele müssen auch unter 2.0 laufen.
Ich hab es fast. 🙂. LEider hänge ich bei einem Problem. 🙁
Beispiel:
Ich erstelle ein neues Fenster mit:
MDIChild childForm = new MDIChild();
Dann wird der event handler aufgerufen:
private void tabControl1_SelectedIndexChanged(object sender, System.EventArgs e)
{
foreach (MDIChild childForm in this.MdiChildren)
{
//Check for its corresponding MDI child form
if (childForm.TabPag.Equals(tabControl1.SelectedTab))
{
//Activate the MDI child form
childForm.Select();
}
}
KLappt so weit ganz gut. Nun erstelle ich aber ein Fesnter mit:
auftrag childForm = new auftrag();
Jetzt funktioniert der Eventhandler nicht mehr, der müsste geändert werden auf:
foreach (auftrag childForm in this.MdiChildren)
Leider habe ich keine Ahnung, wie ich diese Zeile so gestalte, das verschiedene Forms akzeptiert werden. also einmal
MDIChild childForm = new MDIChild();
und dann
auftrag childForm = new auftrag();
Wobei das sicher an die 20 verschiedene werden.
Gruß
Markus
Wie wärs, wenn du einfach von Form ausgehst? Weil alle Fenster sind ja von Form abgeleitet, d.h du schreibst es einfach so:
foreach (Form childForm in this.MdiChildren)
A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee
Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.
Hallo SatMAX,
nein, childForm muss nur vom richtigen Typ sein. Der statische Typ entscheidet darüber, welche Member zur Verfügung stehen. Ggf. musst du auf den entsprechenden Typ casten (Cast, is, as).
herbivore
Hallo herbivor
>> auf den entsprechenden Typ casten (Cast, is, as).
Das ist ja mein Problem, ich habe natürlich verschiedene Forms.
Aber, egal, ich hab es. Einfach eine Zwischenklasee (meine erste. 🙂 ), die macht nun alles. Habe C# erst diese Woche bekommen, und auch unter Windows habe ich noch nie programmiert, bin eigentlich überrascht dass ich das in so kurzer Zeit hinbekommen habe. Codeprojekt und das Forum waren natürlich eine Große Hilfe.
Danke nochmals.