Laden...

Ausgewählter Wert aus Combobox in Variabel zwischen speichern

Erstellt von cpetit vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.952 Views
C
cpetit Themenstarter:in
54 Beiträge seit 2007
vor 16 Jahren
Ausgewählter Wert aus Combobox in Variabel zwischen speichern

Hallo,

habe mal wieder ein Problem mit C#.

Möchte gerne einen Wert den ich aus der Combobox ausgewählt habe in eine Variabel
zwischenspeichern. Beim ersten mal bekomme ich den Wert in die Variabel beim zweiten mal bekomme ich die Meldung:

"Eine nicht behandelte Ausnahme des Typs 'System.Exception' ist in system.windows.forms.dll aufgetreten.

Zusätzliche Informationen: Komplexes DataBinding nimmt als Datenquelle entweder IList oder IListSource an."

Hier mein Code:


private void cmd_Suchfeld1_SelectedValueChanged(object sender, System.EventArgs e)
		{
			if(sSuchtext1 != cmd_Suchfeld1.Text)
			{
				if(cmd_Suchfeld1.Text == "Gremium")
				{
					txt_Suchtext1.Visible = false;
					cmd_Suchtext1.Visible = true;
				
					// Elemente aus Liste entfernen
					cmd_Suchtext1.Items.Clear();
					// das ist die gemeinsame Quelle der Liste
					cmd_Suchtext1.DataSource = dt;
					// Der Inhalt dieses Feldes wird in der Liste angezeigt
					cmd_Suchtext1.DisplayMember = "GREMIUM_TEXT1";
					cmd_Suchtext1.ValueMember = "GREMIUM_ID";
				}
				else
				{
					cmd_Suchtext1.Visible = false;
					txt_Suchtext1.Visible = true;
					cmd_Suchtext1.DataSource = string.Empty;
				}
				sSuchtext1 = cmd_Suchfeld1.Text;
			}
		}
49.485 Beiträge seit 2005
vor 16 Jahren

Hallo cpetit,

habe mal wieder ein Problem mit C#.

die Frage ist aber dein erster Beitrag. Hast du noch einen anderen Account auf myCSharp.de? Das ist keine Fangfrage. Ich bitte um eine ehrliche Antwort.

beim zweiten mal bekomme ich die Meldung:

In welcher Zeile genau? Siehe [Hinweis] Wie poste ich richtig? Punkt 5.

Komplexes DataBinding nimmt als Datenquelle entweder IList oder IListSource an.

Implementiert das gebundene Object eins der beiden Interfaces? Wenn nicht, hast du den Fehler gefunden.

herbivore

C
cpetit Themenstarter:in
54 Beiträge seit 2007
vor 16 Jahren

die Frage ist aber dein erster Beitrag. Hast du noch einen anderen Account auf myCSharp.de? Das ist keine Fangfrage. Ich bitte um eine ehrliche Antwort.

Ist mein erster Beitrag, und ein anderes Account habe ich hier auch nicht.

In welcher Zeile genau?

Zeile 24: sSuchtext1 = cmd_Suchfeld1.Text;

Implementiert das gebundene Object eins der beiden Interfaces

Verstehe ich nicht. Beschäftige mich noch lange mit C#.

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo cpetit,

Verstehe ich nicht.

siehe [Hinweis] Wie poste ich richtig? Punkt 5.

herbivore

C
cpetit Themenstarter:in
54 Beiträge seit 2007
vor 16 Jahren

Nochmals zu meinem Problem.

Habe ein Filter-Dialog das aus mehreren Comboxen und Textbox besteht.
Je nach Auswahl eines Eintrages aus einer Combobox wird entweder eine Textbox oder eine Combobox sichtbar. Die Combobox die sichtbar wird wird mittels Dataset gefüllt.

Um nicht jedesmal die Combobox die sichtbar gemacht wurde beim Event "SelectedValueChanged" der Combobox (bei der ich den Eintrag ausgewählt habe)neu zu füllen merke ich mir die Auswahl des Eintrages in einer Variabel.


		private void cmd_Suchfeld1_SelectedValueChanged(object sender, System.EventArgs e)
		{
			if(sSuchtext1 != cmd_Suchfeld1.Text)
			{
				if(cmd_Suchfeld1.Text == "Gremium")
				{
					txt_Suchtext1.Visible = false;
					cmd_Suchtext1.Visible = true;
				
					// Elemente aus Liste entfernen
					cmd_Suchtext1.Items.Clear();
					// das ist die gemeinsame Quelle der Liste
					cmd_Suchtext1.DataSource = dt;
					// der Inhalt dieses Feldes wird in der Liste angezeigt
					cmd_Suchtext1.DisplayMember = "GREMIUM_TEXT1";
					// der Wert der abgerufen wird
					cmd_Suchtext1.ValueMember = "GREMIUM_ID";

					sSuchtext1 = cmd_Suchfeld1.Text;
				}
				else
				{
					cmd_Suchtext1.Visible = false;
					txt_Suchtext1.Visible = true;

					sSuchtext1 = cmd_Suchfeld1.Text;
					cmd_Suchtext1.DataSource = string.Empty;
				}
				
			}
		}

Übergebe jetzt im else-Zweig den Ausgewählten Wert der Combobox an die Variabel bevor ich die "DataSource" auf Empty setze.

Jetzt bekomme ich die gleiche Meldung nun am Ende der Anweisung.

Die Suchfunktion habe ich auch schon benutzt aber nix braucbares gefunden.

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo cpetit,

implementiert String eins der Interfaces IList oder IListSource? Nein! Du hättest den Fehler nach meinen bisherigen Informationen also finden können. Entsprechend darfst du an cmd_Suchtext1.DataSource keinen String zuweisen. Vermutlich darfst du aber null zuweisen.

herbivore