Problem beim Zugriff von Form auf UserControls

dali

Grünschnabel
Hi!

Habe folgendes Problem...

Habe eine Form - mit einem Menü...
Im Menü sind jetzt verschieden Punkte auswählbar (Faktura erstellen, Lieferant anlegen, ...)

Je nachdem wo der User hinklickt öffnet sich eine neue Form (MasterForm) mit einem Panel für UserControls - dementsprechend wird auch das vom User verlangte UserControl reingeladen.

Der Speichern-Button liegt jedoch auf der MasterForm ...
Ich brauche jetzt aber die Daten vom UserControl. Das haut im Moment überhaupt nicht hin.

* Ich weiss, welches UserControl ich geladen habe.
* Ich hab alles auf Public .. kann auch auf die Objekte zugreifen (im Speziellen ein RadioButton)

Doch wenn ich die Checked-Eigenschaft abfrage kommt immer False zurück. Was mach ich falsch?

Danke...

LG,
Dali
 
Hi!

Ich versuchs mal :)

Ich hab ne MasterForm. In dieser ist ein Panel und 2 Buttons. Und in das Panel werden UserControls geladen.

Im UserControl das reingeladen wird sind mehrere Felder (RadioButton, TextBox, DateTime, ...)

Jetzt möcht ich beim Klick auf einen Button auf der MasterForm ... den Checked-Status des RadioButtons im UserControl abfragen.

Code:
private void btnSave_Click(object sender, EventArgs e)
{
            // Hiermit find ich raus welches UserControl reingeladen wird...
            //MessageBox.Show(objControl.ToString());
            
            // das ist das eine spezielle UserControl jetzt
            UcFaktura faktura = new UcFaktura();
            
            // 1. Versuch
            if (faktura.optRechnung.Checked) MessageBox.Show("Checked!");
            
            // 2. Versuch
            MessageBox.Show(faktura.optRechnung.Checked.ToString());
}

Das gibt mir immer ein FALSE zurück - egal ob der RadioButton angeklickt ist - oder nicht.

Hoffe, dass es jetzt verständlicher ist... :)

LG
 
Hallo!

Interpretiere ich es richtig, dass objControl das UserControl ist, von welchem du den Status der Checkbox möchtest?

Auf jeden Fall ist es klar, dass da der Standardwert zurückgeliefert wird, denn du erstellst ja mit new UcFaktura ein neues Objekt der Klasse UcFaktura. Da werden natürlich für die Controls alle default-Werte gesetzt.

Falls ich obiges richtig interpretiert habe dürfte aber folgendes helfen:
Code:
UcFaktura faktura = (UcFaktura)objControl;

Gruss
Cromon
 
Hi!

Jep, danke hat geholfen...funktioniert nun ;)

Aber was ich nicht ganz check...warum hats mit new UcFaktura nicht funktioniert?
Ok, die Standardwerte werden gesetzt, aber wenn ich dann auf den RadioButton klick, dann sollte er doch den Checked-Wert auf TRUE haben ... ?!

Ich steh grad auf der Leitung - sorry *g*
 
Nein, du erstellst ja ein neues Objekt der Klasse UcFaktura, das hat nichts mit dem bereits bestehenden Objekt zu tun.
Code:
public class Foo
{
public Foo() { m_value = 2; }

public int m_value;
};

static void main()
{
      Foo f1 = new Foo();
      f1.m_value = 3;
      Foo f2 = new Foo();
}

f1 und f2 haben nur den Typ gemeinsam, sind aber zwei völlig unterschiedliche Objekte.

Gruss
Cromon
 
Zurück