Laden...

Anwendung oder Form mit mehreren Seiten

Erstellt von cremofix vor 17 Jahren Letzter Beitrag vor 17 Jahren 2.515 Views
C
cremofix Themenstarter:in
1 Beiträge seit 2007
vor 17 Jahren
Anwendung oder Form mit mehreren Seiten

Hallo Leute,

bitte hackt mir nicht gleich den Kopf ab. Wahrscheinlich ist die Frage ziemlich dämlich aber ich finde trotz Lesens im Forum und in meinem VC#2005 Schritt für Schritt Buch keine Lösung.

Das Problem ist bestimmt trivial und schon 100 mal besprochen worden...:

Ich habe mehrere Forms programmiert, die einzeln prima laufen.
Nun will ich die in einer Anwendung zusammenfassen. Entweder, indem ich im Menü auf die jeweiligen Themen zugreife oder, daß jedes Form einen Button enthält um auf das andere zu wechseln oder über Karteireiter. Ist mir im Prinzip egal, hauptsache es geht überhaupt. Das Prinzip wird wohl denke ich, auch das gleiche sein.

WIE RUFE ICH EINE SEITE (Form) aus einer andern auf?

Am liebsten möchte ich, daß sich einfach der Inhalt des bereits geöffneten Forms ändert (KEIN Neues Fenster)

DANKE FÜR JEDE HILFE

cremofix

T
94 Beiträge seit 2006
vor 17 Jahren

Hallo,

also eine neue Form kannst du aufrufen indem du eine Instanz(Objekt) der Form erstellst und dann mit der Show() Methode aufrufst.


Form2 f2 = new Form2();
f2.Show();

als ich deinen beitrag gelesen hab, is mir als erstes ne lösung mit mdi eingefallen (wird nicht in "vc# schritt für schritt" erklärt) http://www.galileocomputing.de/openbook/visual_csharp/visual_csharp_21_000.htm#Xxx999338

da du aber meintest, dass du es am liebsten so hättest, dass du keine neue form aufrufen müsstest, müsstest du alle Buttons etc per code erstellen und dann mit der visible eigenschaft das ganze so programmieren wie dus willst

karteisystem wäre TabControl. schau dir das control einfach mal an.

erzähl mal ein bisschen mehr von der programmidee. vielleicht gibt es eine bessere lösung als viele forms.

mfg

ps mit dem buch "vc# 2005 schritt für schritt" hab ich auch meine ersten schritte in c# gemacht. ist sehr gut zum lernen.

If you don't like me for who I am, then you don't like me for who I am, but all you're gonna get, is who I am.

C
103 Beiträge seit 2007
vor 17 Jahren

Hallo cremofix,

ich bin selber noch neu in C# aber ich habe Deine Frage mal zum Anlaß genommen, hierzu etwas rumzuspielen und auszuprobieren. Was ich entdeckt habe ist die Klasse UserControl, die man über das Projekt mit "Hinzufügen > Benutzersteuerelement" hinzufügen und dann ähnlich wie eine Form visuell gestalten, mit Objekten befüllen und Code implementieren kann.

Später in Deiner Haupt-Form kannst Du diese UserControls dann nach Bedarf einbinden.

Angenommen Du hast 3 solche UserControls erstellt, und möchtest die jetzt in Deiner Hauptform anzeigen, dann kannst Du das so tun:


private void button1_Click(object sender, EventArgs e)
{
    if (uc2 != null)
    {
        uc2.Hide();
    }

    if (uc3 != null)
    {
        uc3.Hide();
    }

    if (uc1 == null)
    {
        uc1 = new UserControl1();
        uc1.Parent = this;
        uc1.Top = 20;
        uc1.Left = 200;
    }
            
    uc1.Show();
}

Die drei UserControls (uc1, uc2, uc3) sind als Felder der Form angelegt. Button1 ist ein Button auf der Haupt-Form, die das Anzeigen des UserControls auslöst.

Ich weiß nicht wie "sauber" diese Lösung ist, wie gesagt ich bin selber noch neu, aber es scheint eine Möglichkeit zu sein. Vielleicht gibt es bessere, keine Ahnung.

Freundliche Grüße,
capcom

_
83 Beiträge seit 2007
vor 17 Jahren

Hallo cremofix,

Ich würde Dir auch User Controls empfehlen, da du normalerweise nur ein Zeile ändern musst um eine Form in ein User Control umzuwandeln. Nämlich, (falls du den Desinger) verwendest nach der Namespace Definition in der Codedatei deiner Form:


public partial class [FormName] : Form

in


public partial class [FormName] : UserControl

Diese kannst du dann, wie capcom es dir schon sagte einfach in deine form einbinden.

User Controls kannst du übrigens auch als Plugin verwenden, einen ganz guten Artikel gibts auf dem Codeproject:
http://www.codeproject.com/csharp/pluginsincsharp.asp

mfg _ms

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo cremofix,

siehe auch Mit Forms eine art Frame einer Website nachbauen?

herbivore