Seite 1 von 2 12 Letzte »
Ergebnis 1 bis 20 von 23

[C#] Form2 von Form1 erben lassen, ohne die komplette Schnittstelle zu übernehmen

  1. #1 Zitieren
    Kämpfer Avatar von Snapperslayer
    Registriert seit
    Dec 2006
    Ort
    Düsseldorf
    Beiträge
    317
    Hallo, ich bin's mal wieder

    Und zwar geht es um oben genanntes Problem: Ich möchte Form2 von Form1 erben lassen, um von Form2 auf Form1 zugreifen zu können, ohne dass Form2 auf einmal aussieht wie Form1. Ist das irgendwie möglich? Wenn nicht, bitte Alternative vorschlagen. Danke

    Wenn ihr's konkreter wollt: Ich habe in Form1 eine (oder besser gesagt mehrere) Variablen, die ich in Form2 ändern und benutzen will. Wahrscheinlich ist das in objektorientierter Sicht ein Sakrileg, aber das ist mir egal

    MfG Crawlerkiller
    Die Standardschriftart von Gothic 3 ist tatsächlich Comic Sans.
    Auch Du kannst dagegen etwas tun. Setz Dich zur Wehr. \Gothic III\Ini\ge3.ini
    Snapperslayer ist offline

  2. #2 Zitieren
    Krieger Avatar von DerSepp
    Registriert seit
    Dec 2007
    Beiträge
    483
    Ich weiss jetzt nicht, wie gut mein Lösungsansatz programmiertechnisch ist, aber ich gebe der 2. Form beim Aufruf immer ein paar Argumente mit den Werten mit:
    Code:
    namespace MehrereFormen
    {
        public class Form1 : System.Windows.Forms.Form
        {
            private System.ComponentModel.Container components = null;
     
    // Konstruktor der Klasse der zweiten Form mit Übergabewerten
            public Form1(int z)
            {
                InitializeComponent();
            }
        }
    }
    Und aufgerufen wird das ganze dann so:
    Code:
    Application.Run(new Form1(15)); // Aufruf der 2. Form mit dem Wert 15
    Konnte das Ganze jetzt nicht austesten, da ich kein C# installiert habe. Das sollte aber so ähnlich funktionieren.

    Der übergebene Wert muss dann natürlich noch global abgespeichert werden, damit er überall benutzt werden kann.

    Gruss
    DerSepp

    Edit: Oder du kannst dir auch das Tutorial von dieser Seite durchlesen.
    DerSepp ist offline Geändert von DerSepp (20.10.2010 um 17:42 Uhr)

  3. #3 Zitieren
    Kämpfer Avatar von Snapperslayer
    Registriert seit
    Dec 2006
    Ort
    Düsseldorf
    Beiträge
    317
    Hm, danke, darüber dass in den Konstruktor zu bauen hab' ich noch gar nicht nachgedacht. Mal testen, ob's klappt. Allerdings sollten die veränderten Variablen so bleiben. Beispiel:
    Variable in Form1:
    Code:
    int a = 0;
    Form2 sagt dann:
    Code:
    a = 2;
    Und wenn man dann in Form1 folgendes testet:
    Code:
    MessageBox.Show(a.toString());
    ...soll die MessageBox "2" ausgeben, nicht "0".
    Gibt's da nicht irgendwie diese Schlüsselwörter ref und out?
    Weiß aber nicht mehr genau, wie das funktioniert
    Bitte um Erklärung, ich hasse die MSDN

    MfG Crawlerkiller
    Die Standardschriftart von Gothic 3 ist tatsächlich Comic Sans.
    Auch Du kannst dagegen etwas tun. Setz Dich zur Wehr. \Gothic III\Ini\ge3.ini
    Snapperslayer ist offline

  4. #4 Zitieren
    Krieger Avatar von DerSepp
    Registriert seit
    Dec 2007
    Beiträge
    483
    Zitat Zitat von Crawlerkiller Beitrag anzeigen
    ...soll die MessageBox "2" ausgeben, nicht "0".
    Dann wirst du mit meinem Codebeispiel wohl nicht weit kommen, ausser du lässt später von Form2 wieder die Form1 öffnen und übergibst der wieder Werte.

    Am besten wird's wohl sein, wenn du das ganze mithilfe von OOP löst, wie auf der von mir verlinkten Seite (nochmal hier der Link). Hab's mir jetzt nicht durchgelesen, sollte aber verständlich sein.

    Gruss
    DerSepp
    DerSepp ist offline

  5. #5 Zitieren
    Kämpfer Avatar von Snapperslayer
    Registriert seit
    Dec 2006
    Ort
    Düsseldorf
    Beiträge
    317
    Zitat Zitat von DerSepp Beitrag anzeigen
    Dann wirst du mit meinem Codebeispiel wohl nicht weit kommen, ausser du lässt später von Form2 wieder die Form1 öffnen und übergibst der wieder Werte.

    Am besten wird's wohl sein, wenn du das ganze mithilfe von OOP löst, wie auf der von mir verlinkten Seite (nochmal hier der Link). Hab's mir jetzt nicht durchgelesen, sollte aber verständlich sein.

    Gruss
    DerSepp
    Danke dir, hab den Edit gar nicht gelesen

    Edit: Nur noch 'ne Frage, um keinen neuen Post aufmachen zu müssen: Meine IntelliSense ist irgendwie kaputt
    Früher konnte ich den Anfang schreiben (z.B. messa[IntelliSense zeigt MessageBox an])und sobald ich einen anderen Buchstaben/Leertaste/Enter gedrückt habe, hat er das MessageBox vervollständigt. Jetzt ist es so, dass die IntelliSense zwar auch die sachen anzeigt, jedoch muss ich erst Pfeilrunter drücken und dann mühselig das ausgewählte mit Enter bestätigen... das nervt ziemlich.
    Einer 'ne Idee, wie man das wieder umstellen kann?
    Die Standardschriftart von Gothic 3 ist tatsächlich Comic Sans.
    Auch Du kannst dagegen etwas tun. Setz Dich zur Wehr. \Gothic III\Ini\ge3.ini
    Snapperslayer ist offline Geändert von Snapperslayer (20.10.2010 um 18:13 Uhr)

  6. #6 Zitieren
    Ritter Avatar von Delta 38
    Registriert seit
    Nov 2008
    Ort
    Bremen
    Beiträge
    1.251
    MessageBox.Show(a.toString());

    ...soll die MessageBox "2" ausgeben, nicht "0".
    Gibt's da nicht irgendwie diese Schlüsselwörter ref und out?
    Weiß aber nicht mehr genau, wie das funktioniert
    Bitte um Erklärung, ich hasse die MSDN
    Übergib dem Konstruktor einen Pointer (natürlich dann auch als input deklarieren)

    @IntelliSense:
    • Extras->Optionen->TextEditor->C#->IntelliSense->Commit beim drücken der Leertaste aktivieren
    Delta 38 ist offline

  7. #7 Zitieren
    Kämpfer Avatar von Snapperslayer
    Registriert seit
    Dec 2006
    Ort
    Düsseldorf
    Beiträge
    317
    Zitat Zitat von Delta 38 Beitrag anzeigen
    Übergib dem Konstruktor einen Pointer (natürlich dann auch als input deklarieren)

    @IntelliSense:
    • Extras->Optionen->TextEditor->C#->IntelliSense->Commit beim drücken der Leertaste aktivieren
    Zum Konstruktor...
    Danke, habs schon anders hinbekommen

    Zur IntelliSense...
    Ist schon aktiviert Und es geht immernoch nicht.
    Ich glaube, dass ich sie "kaputt" gemacht habe, indem ich ausversehen irgendeine Tastenkombination gedrückt habe. Ähnlich wie ALT+SHIFT die englische Tastatur aktiviert.
    Die Standardschriftart von Gothic 3 ist tatsächlich Comic Sans.
    Auch Du kannst dagegen etwas tun. Setz Dich zur Wehr. \Gothic III\Ini\ge3.ini
    Snapperslayer ist offline

  8. #8 Zitieren
    Ritter Avatar von Delta 38
    Registriert seit
    Nov 2008
    Ort
    Bremen
    Beiträge
    1.251
    Englische Tastatur wieder umstellen
    Taskleiste->EN auf DE umstellen

    Ansonsten poste mal deine Einstellungen

    Gruß Delta 38
    Delta 38 ist offline

  9. #9 Zitieren
    Kämpfer Avatar von Snapperslayer
    Registriert seit
    Dec 2006
    Ort
    Düsseldorf
    Beiträge
    317
    Zitat Zitat von Delta 38 Beitrag anzeigen
    Englische Tastatur wieder umstellen
    Taskleiste->EN auf DE umstellen

    Ansonsten poste mal deine Einstellungen

    Gruß Delta 38
    Das mit der englischen Tastatur sollte nur ein Beispiel für eine Tastenkombination sein
    Und wie ich meine Einstellungen poste, weiß ich nicht
    Die Standardschriftart von Gothic 3 ist tatsächlich Comic Sans.
    Auch Du kannst dagegen etwas tun. Setz Dich zur Wehr. \Gothic III\Ini\ge3.ini
    Snapperslayer ist offline

  10. #10 Zitieren
    Ritter Avatar von Delta 38
    Registriert seit
    Nov 2008
    Ort
    Bremen
    Beiträge
    1.251
    Das mit der englischen Tastatur sollte nur ein Beispiel für eine Tastenkombination sein
    Und wie ich meine Einstellungen poste, weiß ich nicht
    Achso
    abtippen oder einfach bild machen hochladen und posten
    Delta 38 ist offline

  11. #11 Zitieren
    Kämpfer Avatar von Snapperslayer
    Registriert seit
    Dec 2006
    Ort
    Düsseldorf
    Beiträge
    317
    Zitat Zitat von Delta 38 Beitrag anzeigen
    Achso
    abtippen oder einfach bild machen hochladen und posten
    dann müsste ich ja x Screenshots machen
    Die Standardschriftart von Gothic 3 ist tatsächlich Comic Sans.
    Auch Du kannst dagegen etwas tun. Setz Dich zur Wehr. \Gothic III\Ini\ge3.ini
    Snapperslayer ist offline

  12. #12 Zitieren
    Ritter Avatar von Delta 38
    Registriert seit
    Nov 2008
    Ort
    Bremen
    Beiträge
    1.251
    Ich meinte nur den Screen von der IntelliSense-Einstellung
    Delta 38 ist offline

  13. #13 Zitieren
    Kämpfer Avatar von Snapperslayer
    Registriert seit
    Dec 2006
    Ort
    Düsseldorf
    Beiträge
    317
    Zitat Zitat von Delta 38 Beitrag anzeigen
    Ich meinte nur den Screen von der IntelliSense-Einstellung
    Ach ja, macht Sinn

    Sorry, dass es so lang gedauert hat. War mit meinem Tool beschäftigt
    Hier ist der Screenshot
    Spoiler:(zum lesen bitte Text markieren)
    Die Standardschriftart von Gothic 3 ist tatsächlich Comic Sans.
    Auch Du kannst dagegen etwas tun. Setz Dich zur Wehr. \Gothic III\Ini\ge3.ini
    Snapperslayer ist offline

  14. #14 Zitieren
    Provinzheld Avatar von Fred Froschfurz
    Registriert seit
    Oct 2006
    Ort
    using System.Windows.Forms.Design.Behavior
    Beiträge
    269
    Kannst deinen ganzen code bitte posten? kapiere nicht dein Problem.
    Fred Froschfurz ist offline

  15. #15 Zitieren
    Kämpfer Avatar von Snapperslayer
    Registriert seit
    Dec 2006
    Ort
    Düsseldorf
    Beiträge
    317
    Zitat Zitat von Fred Froschfurz Beitrag anzeigen
    Kannst deinen ganzen code bitte posten? kapiere nicht dein Problem.
    Problem ist schon gelöst
    Die Standardschriftart von Gothic 3 ist tatsächlich Comic Sans.
    Auch Du kannst dagegen etwas tun. Setz Dich zur Wehr. \Gothic III\Ini\ge3.ini
    Snapperslayer ist offline

  16. #16 Zitieren
    Krieger Avatar von DerSepp
    Registriert seit
    Dec 2007
    Beiträge
    483
    Zitat Zitat von Crawlerkiller Beitrag anzeigen
    Hier ist der Screenshot
    Meine Einstellungen sehen gleich aus, daran wird's also wahrscheinlich nicht liegen. Überprüfe, ob du nicht noch irgendwelche Programm am debuggen bist und versuch nachher mal ein Schlüsselwort zu beginnen und dann CTRL + Leertaste zu drücken.

    Gruss
    Seppl
    DerSepp ist offline

  17. #17 Zitieren
    Kämpfer Avatar von Snapperslayer
    Registriert seit
    Dec 2006
    Ort
    Düsseldorf
    Beiträge
    317
    Zitat Zitat von DerSepp Beitrag anzeigen
    Meine Einstellungen sehen gleich aus, daran wird's also wahrscheinlich nicht liegen. Überprüfe, ob du nicht noch irgendwelche Programm am debuggen bist und versuch nachher mal ein Schlüsselwort zu beginnen und dann CTRL + Leertaste zu drücken.

    Gruss
    Seppl
    Ich wollte es gerade ausprobieren, öffne also VS und siehe da: Es hat auch so funktioniert. Alles so wie vorher

    Trotzdem danke für deinen Vorschlag
    Die Standardschriftart von Gothic 3 ist tatsächlich Comic Sans.
    Auch Du kannst dagegen etwas tun. Setz Dich zur Wehr. \Gothic III\Ini\ge3.ini
    Snapperslayer ist offline

  18. #18 Zitieren
    Einmalposter
    Registriert seit
    Jan 2011
    Beiträge
    1
    /////////////////////////
    //FORM1 (StartForm)
    /////////////////////////
    //Variablen,...
    Form2 f2;
    public Form1()
    {
    InitializeComponent();
    f2 = new Form2(this);
    }
    /////////////////////////
    //FORM2
    Form1 f1;
    public Form2(Form1 gui)
    {
    f1=gui;
    }

    schon könnt ihr die Forms 1+2 miteinander Kommunizieren lassen ...
    Globale Form Variablen:

    public string/bool/... NameDerVariable {get;set;}

    Zuweisung mit:
    f1.NameDerVariable =true;
    f2.NameDerVariable ="STRING";

    Beispiel if-Anweiung:
    if(f1.NameDerVariable ==true)
    {
    //Code
    }

    MFG:
    Saika
    saika ist offline

  19. #19 Zitieren
    Auserwählter Avatar von haddock
    Registriert seit
    Aug 2005
    Ort
    /dev/null
    Beiträge
    6.575
    Zitat Zitat von DerSepp Beitrag anzeigen
    Dann wirst du mit meinem Codebeispiel wohl nicht weit kommen, ausser du lässt später von Form2 wieder die Form1 öffnen und übergibst der wieder Werte.
    Wieso so umständlich?
    Die vererbte Funktion von Form 1 ist doch noch immer total valid, da sie auf die Instanzvariable zugreift (die jetzt (nach Konstruktor) 2 statt 0 ist).

    Meine Apps im AppStore:
    [Bild: frantic.png]

    haddock ist offline

  20. #20 Zitieren
    Mythos Avatar von Pyrokar
    Registriert seit
    May 2004
    Ort
    ..... hihihähähä hier gibt es Wände und wenn ich dagegen Lauf prall ich ab, wie ein Flummi..... hihihähähääähääääää
    Beiträge
    8.115
    Zitat Zitat von haddock Beitrag anzeigen
    Wieso so umständlich?
    Die vererbte Funktion von Form 1 ist doch noch immer total valid, da sie auf die Instanzvariable zugreift (die jetzt (nach Konstruktor) 2 statt 0 ist).
    Aber das ist die Instanzvariable von Form2, wenn man a dort auf zwei setzt, dann hat Form1 immer noch den Wert 0 in seinem a.

    So wie ich das verstanden habe, ging es hier auch um Kommunikation zwischen zwei Form-Instanzen (die Bezeichner Form1 und Form2 deuten da stark drauf hin) und nicht um Vererbung.
    [Bild: gg_schuetzen_ani.gif] | ~ DauJones ~ | ~ Klopfers-Web ~ | ~ German Bash ~ |
    Die meisten und schlimmsten Übel, die der Mensch dem Menschen zugefügt hat, entsprangen dem felsenfesten Glauben an die Richtigkeit falscher Überzeugungen.
    Bertrand Russell
    Religionskriege sind Konflikte zwischen erwachsenen Menschen, bei denen es darum geht, wer den cooleren, imaginaeren Freund hat. anonym
    Pyrokar ist offline

Seite 1 von 2 12 Letzte »

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •