Benutzer mit den meisten Antworten
Visual Studio 2008 C# Ausgewähltes Element aus ComboBox in TextBox

Frage
-
Hallo Leute,
ich habe folgendes Problem: Ich habe mit Windows Forms ein Fenster mit verschiedenen RadioButtons und einer TextBox, wenn ich einen RadioButton auswähle geht eine neue Windows Form auf mit einer ComboBox mit mehreren verschieden Elementen zum auswählen. Nun hätte ich gerne dass das ausgewählte Element aus der ComboBox in der TextBox des anderen Fensters angezeigt wird wenn ich das Fenster mit der ComboBox wieder schließe.
Wäre sehr dankbar wenn jemand ne gute Idee hat. Vielen Dank schon mal im Vorraus!!! Mfg John
Antworten
Alle Antworten
-
Hallo Leute,
ich habe folgendes Problem: Ich habe mit Windows Forms ein Fenster mit verschiedenen RadioButtons und einer TextBox, wenn ich einen RadioButton auswähle geht eine neue Windows Form auf mit einer ComboBox mit mehreren verschieden Elementen zum auswählen. Nun hätte ich gerne dass das ausgewählte Element aus der ComboBox in der TextBox des anderen Fensters angezeigt wird wenn ich das Fenster mit der ComboBox wieder schließe.
Wäre sehr dankbar wenn jemand ne gute Idee hat. Vielen Dank schon mal im Vorraus!!! Mfg John
- Zusammengeführt Tom Lambert (Koopakiller)Moderator Mittwoch, 4. September 2013 13:12 Doppelpost
-
Hi Johnson,
die einfachste Möglichkeit ist eine Public Property in der Form Bereit zu stellen, welches du nach dem Schließen der Form abfragst.
Grundlegend sollte man aber Daten(Model) und Darstellung(View) trennen, hier gibt es z.B. das MVVM Pattern.
MFG
Björn
-
Danke schon mal, aber jetzt kommt die Meldung dass die TextBox im aktuellen Kontext nicht vorhanden is obwohl sie es eigentlich sein müsste... und .Text konnte nicht als Erweiterungsmethode gefunden werden?!?! SelectedIndexChanged ist schon richtig oder?
private void ComboBox_SelectedIndexChanged(objekt sender, EventArgs e) ?!
Danke nochmals -
Hi,
für mich kling es jetzt so als ob du in Form2 auf die Textbox von Form1 zugreifen willst. Das klappt nicht.
Ich hab dir jetzt mal ein einfaches Beispiel gebastelt.
public partial class Form2 : Form { public Form2() { InitializeComponent(); } public string SelectedValue { get; set; } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { SelectedValue = comboBox1.SelectedValue.ToString(); } } public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { var form2 = new Form2(); form2.ShowDialog(); textBox1.Text = form2.SelectedValue; } }
Der Wert wird erst nach dem Schließen der 2. Form in die Textbox von Form1 übernommen.
Die Combobox solltest du nicht nach außen hin sichtbar machen. Da dadurch Abhängigkeiten zur Combox entstehen. Und du so später z.B. die Combox nicht gegen ein Textfeld austauschen kannst.
MFG
Björn
- Als Antwort vorgeschlagen Dennis Becker Freitag, 6. September 2013 11:53
-
Gehen tut es schon auf die Textbox der ersten Form zuzugreifen.
namespace WindowsFormsTest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void radioButton1_CheckedChanged(object sender, EventArgs e) { if (radioButton1.Checked) { Form2 f2 = new Form2(ref textBox1 ); f2.ShowDialog( ); } } } } namespace WindowsFormsTest { public partial class Form2 : Form { TextBox tbform1; public Form2() { InitializeComponent(); } public Form2( ref TextBox tb ) { tbform1 = tb; InitializeComponent(); } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { tbform1.Text = comboBox1.SelectedItem.ToString(); } } }
- Als Antwort vorgeschlagen Dennis Becker Freitag, 6. September 2013 11:53
-
Eine letzte Sache wäre da doch noch, sobald ich ein anderes Element in der ComboBox auswähle wird der RadioButton auf ein mal "Unchecked". Der Text wird aber in der TextBox angezeigt :) .Bekomme es nicht hin dass er grün, also "checked" bleibt wenn ich ein anderes element auswähle?!?!
-
Hey Björn ich habe cats Version benutzt da bei deiner leider jedes mal eine Fehlermeldung kommt. Aber das Problem mit dem RadioButton habe ich noch nicht lösen können. Wie gesagt sobald ich aus der ComboBox ein Element auswähle wird dieser Unchecked. Wäre super wenn ihr mir nochmal weiterhelfen könntet :-)public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void radioButton1_Click(object sender, EventArgs e) { if (radioButton1.Checked) { Form1 f2 = new Form1(ref TextBox ); f2.ShowDialog(); } }
public partial class Form2 : Form { TextBox tbform2; public Form2() { InitializeComponent(); } public Form2( ref TextBox tb ) { tbform2 = tb; InitializeComponent(); } private void ComboBox_SelectedIndexChanged(object sender, EventArgs e) { tbform2.Text = ComboBox.SelectedItem.ToString(); } } }
-
public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void radioButton1_Click(object sender, EventArgs e) { if (radioButton1.Checked) { Form1 f2 = new Form1(ref TextBox ); <- richtiger Name übergeben f2.ShowDialog(); } }
-
Hi Johnson,
ich hatte bei mir eine Liste gebunden.
Probiere mal SelectedItem anstelle von SelectedValue.
Die Textbox zu übergeben ist übrigens keine gute Idee. Form2 kann dann alle Eigenschaften der Textbox ändern und z.B. ein Event der Textbox verwenden. Was zu Speicher Leeks führen kann.
MFG
Björn
-
-
Hi Johnson,
Wenn deine Frage im Rahmen des Threads beantwortet wurde, bitte markiere die hilfreichen Beiträge "als Antwort" .
Ciprian
Ciprian Bogdan, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip„Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.