tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von sheel
  • 1 Beitrag von Timorix
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
520
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Timorix Timorix ist offline Grünschnabel
    Registriert seit
    Jan 2012
    Beiträge
    3
    Ich habe ein Problem bei folgendem hergehen:

    Ich klicke auf einen Button "Generieren" in der Hauptform (frmPasswortManager) und dann öffnet sich eine Form2 (frmPWGen).
    Dort wird dann in der Textbox (txtGen) ein String generiert welches das Passwort sein soll.
    Nun klicke ich auf "OK" in der Form2 und dann soll der Text in der Textbox (txtGen) in eine Textbox in der Hauptform geschrieben werden.

    Ich habe leider keine Ahnung wie ich das hinbekommen könnte. Ich habe kein Problem damit, eine Variable in die Form2 zu übergeben, jedoch dann wieder von Form2 zu lesen.


    Es handelt sich um die Visual Studios WinForms.

    Könnt ihr mir helfen?
    Geändert von Timorix (19.01.12 um 22:23 Uhr)
     

  2. #2
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.504
    Du hättest auch einfach antworten statt löschen können...
    C# gehört nicht hierher. Verschoben.

    Übergib die Hauptform per Konstruktor an die Unterform, dort als Klassenvariable abspeichern.
    Darüber dann bei "OK" auf die Hauptform zugreifen.
    Timorix bedankt sich. 
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  3. #3
    Timorix Timorix ist offline Grünschnabel
    Registriert seit
    Jan 2012
    Beiträge
    3
    Vielen Dank für deine Antwort.
    Ich werde mich in dem Bereich informieren und es so versuchen.

    Edit:
    So das Problem wurde nun behoben.

    Falls ihr das gleiche Problem habt:
    In dem Button von der Form1 (Hauptform) steht dann bei dem aufruf der 2. Form dieser Code:
    Code :
    1
    2
    3
    4
    5
    
    private void cmdGenerieren_Click(object sender, EventArgs e)
            {
                PWGen PWGen = new PWGen(this);
                PWGen.Show();
            }
    Erklärung: Der 2. Form wird also die Form von der jetzigen (die Hauptform) form übergeben:
    PWGen PWGen = new PWGen(this);
    this = Diese Form.

    Dann in der 2. Form über dem Konstruktor:
    Code :
    1
    
    frmManager form;
    frmManager ist die Hauptform.

    Direkt dadrunter:
    Code :
    1
    2
    3
    4
    5
    
    public PWGen(frmManager form)
            {
                InitializeComponent();
                this.form = form;
            }
    Erklärung: Dies funktioniert wie eine normale public Methode wo man z.B Werte errechnen lässt oder sonst was.
    this.form = form:
    Die Form, die über dem Konstruktor deklariert wurde wird die Form zugewiesen, die wir zuvor mit dem Button übergeben haben:
    PWGen FormMan = new PWGen(this);

    Außerdem muss noch in der Hauptform eine public Methode geschrieben werden, damit die Änderungen von der 2. Form geschehen können. In meinem Fall:
    Code :
    1
    2
    3
    4
    5
    6
    7
    
    public string SetPass
            {
                set
                {
                    txtPass.Text = value;
                }
            }
    Erklärung: Ich kann nun in meiner 2.Form den Wert in der Textbox (txtPW) der Textbox (txtPass) von der Hauptform zuweisen.

    Und dann wieder zurück zur 2. FOrm:
    Code :
    1
    2
    3
    4
    
    private void cmdSubmit_Click(object sender, EventArgs e)
            {
                form.SetPass = txtPW.Text;
            }
    Erklärung: form.SetPass:
    "form" ist die Hauptform und hier wird der public Methode SetPass der Stringwert von txtPW.Text angehängt.

    Man könnte es auch so sehen:
    Code :
    1
    2
    3
    4
    
    public string SetPass(string value)
    {
        txtPass.Text = value;
    }

    Wieso man jedoch jetzt set { } verwenden muss, kann ich euch nicht sagen...


    Ich hoffe das die Erklärungen einigermaßen in Ordnung sind
    Geändert von Timorix (19.01.12 um 23:27 Uhr)
    sheel bedankt sich. 

  4. #4
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.504
    Man muss nicht set{} verwenden, die andere Variante geht auch.
    Danke für die ausführliche Beschreibung!
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  5. #5
    Timorix Timorix ist offline Grünschnabel
    Registriert seit
    Jan 2012
    Beiträge
    3
    Oh das ist ja super, das ich auch die andere Variante hätte nehmen können. Ich hatte mir das nur gedacht, da ich in verschiedenen Tutorials die set { } Variante gesehen hab.

    Vielen Dank
    Sry für die PM, dachte man schreibt hier [GELÖST] hinter Problemen, aber da hatte ich noch ein anderes Forum offen.

    Naja vielen Dank für deine Antwort
     

  6. #6
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.504
    Zitat Zitat von Timorix Beitrag anzeigen
    Sry für die PM, dachte man schreibt hier [GELÖST] hinter Problemen
    Weiss zwar nicht, was das mit der PM zu tun hat,
    aber für Gelöst/Erledigt gibt es oben ein Erledigt Ja/Nein
    bzw. unten den (jetzt) gelb-blauen Haken (nicht erledigt ist weiß-blau).
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

Ähnliche Themen

  1. Spring: '<form:form commandName..' statt '<form action...'
    Von NetPerformance im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 3
    Letzter Beitrag: 05.10.08, 19:04
  2. Form.KeyPreview - Kein KeyDown nach Form.Close() oder Form.Hide() *Argh*
    Von Christian Kusmanow im Forum .NET Windows Forms
    Antworten: 4
    Letzter Beitrag: 28.03.06, 14:56
  3. Werte einer Form über eine 2te Form in einer 3ten Form anzeigen
    Von zioProduct im Forum .NET Windows Forms
    Antworten: 8
    Letzter Beitrag: 14.10.05, 08:56
  4. Antworten: 4
    Letzter Beitrag: 06.08.05, 05:24