Wie geht das? Neues Fenster erstellen und Daten auslesen?

sharper

Grünschnabel
Hallo alle zusammen ich habe mal eine frage und evtl. hat ja wer mal einen Link für mich.

Ich möchte mal ein Beispiel haben wie ich ****** OHNE DESIGNER ****** aus einer Form mittels Button ein neues Fenster aufmachen kann, ich dort ein oder mehrere Eingabefelder habe (soll ich nur hier ein Beispiel sein) und ich die in meine erste Form zurückholen und ausgeben kann.

Ich finde echt schwer solche Beispiele wo kein Designer verwendet wird :-(

Ich hoffe ihr könnt mir ein Beispiel geben.
Bin leider recht knapp vor einer Klausur und bin da echt gerade am verzweifeln weil ich dort einfach festhänge wie das gehen soll.


Daher allerbesten Dank schonmal falls sich wer die Mühe macht und mir ein Beispiel schreibt.
 
Eine Seite habe ich nicht aber die frage wäre eh erstmal ob es hier bei um WPF oder Windows Forms geht.

Bei WindowsForms ist es relativ einfach (WPF, keine ahnung ^^)
Label, Button, Panel und selbst Form sind alle von Control abgeleitet.

Ein Control hat immer eine Control auflistung, diesem fügt du deine "Kind" Controls hinzu.

Code:
class MeineForm : Form
{
    public MeineForm()
    {
          GroupBox gb =new GroupBox(); //neues Steuerelement erzeugen, in diesem fallN GroupBox
          gb.Width=100; //Breite
          gb.Height=100; //Höhe
          gp.Top = 10; //Position auf der Y-Achse
          gb.Left = 10; //Position auf der X-Achse
          gb.Text=" meine Group Box"; //Text der GroupBox

          this.Controls.Add(gb); //GroupBox der Form hinzufügen

          //Im folgendem bekommt jetzt noch die GroupBox eine TextBox
          TextBox tb = new TextBox();
         tb.Top =5;
         tb.Left=5;
          tb.Width=250;
           tb.Text="Text in der Textbox";
         gb.Controls.Add(tb); //TextBox der GroupBox hinzufügen

          //Button mit Click Ereignis auf der Form
           Button bt=new Button();
           bt.Text="mein Button";
           bt.Click += new EventHandler(meinbt_Click); //Click Ereignis des buttons abonnieren (hier am besten mal dann nach events und delegates googeln)
           this.Controls.Add(bt);
     }

  private void meinbt_Click(object sender, EventArgs e)
  {
     MessageBox.Show("test");
  }
}

Am besten einfach bissel mit rumspielen und schauen was für auswirkungen alles hat.
(Code ungetestet so grad hingeschrieben)
 
Hi, passte ,- fehlte nur der Einstiegspunkt :D
Code:
public static void Main()
    {
        Application.Run(new MeineForm());
    }

Wie bekomme ich anstatt es in einem Popup Fenster in eine Textbox im Hauptfenster ausgegeben?

Der Button öffnet auch nix,- ich denke da ist noch ein Fehler drin. Habe die Ausgabe mal angehangen.
 

Anhänge

  • codebeispiel.JPG
    codebeispiel.JPG
    13,4 KB · Aufrufe: 7
die meinbt_Click methode hatte ich zuerst ausversehen außerhalb der klasse deklariert.
bei klick sollte da dann eine messagebox kommen.

Die TextBox bekommst du ins Hauptfenster in dem du diese der Controls auflistung der form hinzufügst.
Da wir uns innerhalb der MeinForm Klasse bewegen kannst du hier für den "this" zeiger verwenden.
Code:
this.Control.Add(tb);
 
Hi,

aber irgendwie erfolgt doch kein Aufruf einer neuen Form wo was eingeben kann scheinbar.
 

Anhänge

  • fehlerhaft.JPG
    fehlerhaft.JPG
    41,6 KB · Aufrufe: 16
In meinem Code ging es auch erstmal vorangig um das erstellen eines Formulares und das hinzufügen der Controls.
Da solltest du dich einfach erstmal mit rumspielen und schauen was passiert wenn du mit den Eigenschaften dort rumspielst.

Der nächste schritt wäre dann ein neues Formular zu erstellen in dem du wieder von Form ableitest wie MeineForm.
Über die Methode ShowDialog der Form kannst du dann ein modales Fenster anzeigen lassen.

Code:
using(MeineNeueForm dlg = new MeineNeueForm())
{
    dlg.ShowDialog(null);
}
In diesem Beispiel verwende ich jetzt noch den Befehl using.
Das kann ich auf Objekte anwenden die die schnittstelle IDisposable implementiert haben, so kann ich sicher gehen das die Objekte wieder richtig freigegeben werden.

Ansonsten schau dich mal auf
http://www.galileocomputing.de/katalog/openbook?GalileoSession=06749143A6.ohUZclSw
um die haben eigentlich immer gute Online Bücher
 
Zurück