Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [c#] Auf Variable einer anderen Form zugreifen? (https://www.delphipraxis.net/51473-%5Bc-%5D-auf-variable-einer-anderen-form-zugreifen.html)

dragi 12. Aug 2005 22:37


[c#] Auf Variable einer anderen Form zugreifen?
 
Hallo,

ich beginne gerade ein wenig mit c# und habe eine Anfängerfrage:

Wenn ich 2 Formulare habe und im ersten Formular möchte ich eine Variable deklarieren und füllen, wie kann ich vom zweiten Formular auf diese zugreifen? Und wo muss ich diese im ersten Forular deklarieren?

In Delphi deklariere ich diese einfach im Public Teil und gebe das erste Formular in die USES des zweiten Forumlars. Aber in c#?

Ich hoffe mir kann jemand helfen

Danke
dragi

MathiasSimmack 12. Aug 2005 22:40

Re: [c#] Auf Variable einer anderen Form zugreifen?
 
Machste auch so. Deklarier sie als Public oder gleich als Property
Code:
private int myInt = 0;


public int EineIntVariable
{
  get {
    return myInt;
  }
  set {
    myInt = value;
  }
}
Muss halt in die Klasse rein. Mal guck´n ob´s Meister _G noch besser erklärt. :stupid:

dragi 13. Aug 2005 10:16

Re: [c#] Auf Variable einer anderen Form zugreifen?
 
Aber wenn ich das nun so in meinem ersten Formular deklariere, wie komme ich denn vom zweiten Formular dadrauf? Wenn ich eine neue Instanz des ersten Formulares in meinem zweiten erzeuge habe ich zugriff aber es ist ja dann nicht das "richtige" erste Formular?! Irgendwie steh ich da auf dem Schlauch...

Gruss

Dragi

MagicAndre1981 13. Aug 2005 15:20

Re: [c#] Auf Variable einer anderen Form zugreifen?
 
Hi,

das sollte dir helfen.

André

Robert_G 13. Aug 2005 16:45

Re: [c#] Auf Variable einer anderen Form zugreifen?
 
@André so wie es aussieht, will er von einem Dialog auf das Hauptfenster zugreifen...

Hier das MainForm:
Es macht nichts weiter, als den Text eines Labels als Eigenschaft öffentlich zugreifbar zu machen und im Click des Buttons den Dialog zu öffnen.
Code:
public partial class MainForm : Form
{
   public string Label
   {
      get { return label1.Text; }
      set { label1.Text = value; }
   }

   public MainForm()
   {
      InitializeComponent();
   }

   void button1_Click(object sender, EventArgs e)
   {
      using (AdditionalForm dialog = new AdditionalForm(this))
         dialog.ShowDialog();
   }
}
Die zweite Form Klasse hält eine Referenz auf das MainForm und wenn man Enter/OK drückt, wird der Inhalt einer TextBox in das Label vom Hauptform eingetragen.
Code:
public partial class AdditionalForm : Form
{
   MainForm mainForm;

   protected MainForm MainForm
   {
      get { return mainForm; }
   }


   public AdditionalForm(MainForm mainForm)
      : this()
   {
      this.mainForm = mainForm;
   }

   public AdditionalForm()
   {
      InitializeComponent();
   }

   void okButton_Click(object sender, EventArgs e)
   {
      MainForm.Label = someTextBox.Text;
      DialogResult = DialogResult.OK;
   }

   private void cancelButton_Click(object sender, EventArgs e)
   {
      DialogResult = DialogResult.Cancel;
   }
}
btw: Immer schön an Dispose/using denken, wenn man mit Controls hantiert! :warn:


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz