Unveränderter Parameter nach Dialog

27/03/2008 - 22:59 von Felix Wüst | Report spam
Hallo,

Ich habe einen Dialog den ich über eine Funktion aufrufe der ich gleich
noch die Parameter übergebe die in diesem Dialog geàndert werden sollen:

[code]

// Die aufgerufene Funktion

public static DialogResult Anzeigen(String pre)
{
OptionenDialog dialog = new OptionenDialog();

dialog.praefixTextBox.Text = pre;

DialogResult dr = dialog.ShowDialog();

if (dr == DialogResult.OK)
{
pre = dialog.praefixTextBox.Text;
}
return dr;
}


// Und der Aufruf

DialogResult dr = OptionenDialog.Anzeigen(praefix);

[/code]

So, wenn ich den Dialog aufrufe dann erwarte ich, dass die Änderung sich
in der Variablen praefix (private String) wiederspiegelt. Tut sie aber
nicht. :(

Bei einem anderen Dialog [1], bei dem ich zwei StringCollection übergebe,
funktioniert es tadellos.

Hat jemand eine Idee, woran das liegen könnte?

Danke im Voraus und viele Grüße
Felix

[1]
[code]
public static DialogResult Anzeigen(StringCollection go, StringCollection
stop)
{
Form2 dialog = new Form2();
int i;

foreach (Object obj in go)
{
dialog.listBox1.Items.Add(obj);
}
foreach (Object obj in stop)
{
dialog.listBox2.Items.Add(obj);
}

DialogResult dr = dialog.ShowDialog();

if (dr == DialogResult.OK) {
go.Clear();
stop.Clear();
for (i = 0; i < dialog.listBox1.Items.Count; i++)
{
go.Add(dialog.listBox1.Items[i].ToString());
}
for (i = 0; i < dialog.listBox2.Items.Count; i++)
{
stop.Add(dialog.listBox2.Items[i].ToString());
}
}

return dr;
}



// und Aufruf...

DialogResult aktion = Form2.Anzeigen(go_liste, stop_liste);
 

Lesen sie die antworten

#1 Rudy Velthuis
27/03/2008 - 23:07 | Warnen spam
Felix Wüst wrote:

So, wenn ich den Dialog aufrufe dann erwarte ich, dass die Änderung
sich in der Variablen praefix (private String) wiederspiegelt. Tut
sie aber nicht. :(



Stimmt, sollte sie auch nicht. Deine Erwartung ist eben falsch. Wenn du
das möchtest, solltest du pre als Referenzparameter deklarieren, also
deinen Code etwas abàndern:

public static DialogResult Anzeigen(ref string pre)
{
usw...
}

Und so aufrufen:

DialogResult dr = OptionenDialog(ref praefix);

Rudy Velthuis http://rvelthuis.de

"Those are my principles. If you don't like them I have others."

Ähnliche fragen