Laden...

SelectedIndex bei ComboBox

Letzter Beitrag vor 18 Jahren 8 Posts 2.226 Views
SelectedIndex bei ComboBox

Hallo,

ich habe mal wieder ein Problem, was ich irgendwie nicht alleine lösen kann.

Wenn sich mein Form öffnet, wird zunächst überprüft, ob eine bestimmte Textdatei vorhanden ist. Wenn ja, wird diese ausgelesen und je nach dem werden die Inhalte in dem Form angezeigt. Wenn nicht, möchte ich das bei manchen Elementen standardmäßig schon etwas eingestellt ist. Egal, ob die Textdatei vorhanden ist oder nicht, bei der ComboBox habe ich da so meine Probleme. Ich wollte, das über cb.SelectedIndex machen, aber es funktioniert nicht. Die Anwendung friert dann regelrecht ein und ich habe keine Chance mehr was zu machen.

Woran liegt das? Ich habe die ganze Überprüfung und die Anzeigen direkt nach InitializeComponent(). Ist das eventuell der falsche Ort? Aber bei den anderen Anzeigen (Textboxen, Checkboxen) funktioniert es ja. Ich habe es auch schon versucht über andere Eigenschaften der Combobox zu machen, wie SelectedItem. Aber da passiert gar nichts. In der Combobox ist dann einfach nichts ausgewählt. Und bei Combobox.Text friert das Programm ebenfalls ein.

Habt ihr eventuell ein paar Tipps für mich, wie ich das Problem lösen könnte? Oder ihr schickt mir den Link, wo so ein Problem schon mal beschrieben wurde.

Ciao, kati82

P.S.: Ich weiß, eigentlich ne doofe Frage, aber was ist eigentlich der Unterschied zwischen SelectedIndex, SelectedItem und SelectedValue? Das Ergebnis ist doch eigentlich fast das gleiche, oder?

Hallo!

Ich würde das nicht nach InitializeComponent() geben.

Mit einem Doppelklick auf den Hintergrund der Form (im Designer-Modus) wird das Event Form1_Load erstellt. Dieses wird ausgeführt, sobald die Form geöffnet wird. Dorthin würde ich den Code geben.

SelectedIndex: wievieltes Element ist ausgewählt (der Index des gewählten Elements), wobei das erste 0 ist
SelectedItem: Name des Items, was angezeigt wird

Bsp:

comboBox1.SelectedIndex = 2; //3. Element wird ausgewählt
comboBox1.SelectedItem = "Höhe"; //Element "Höhe" wird ausgewählt

mfg
webstarg

Danke für deine Hilfe. Ich hab das ganze jetzt bei Form.Load drin. Aber das Problem besteht weiterhin.

funktioniert es denn wenigstens wenn du den code in ein button_click-event schreibst???

Hallo kati82,

Frage: Hast du ein EventHandler-SelectedIndexChanged für die ComboBox im Designer erstellt und wird in der Funktion Code ausgeführt der eine Weile dauert?

Gruß falangkinjau

Ich habe keiner der Comboboxen einen Eventhandler zugeordnet. Das was bei denen ausgewählt ist, wird erst nach einem Button_Click ausgelesen.

Die ganze Anzeige durch ein Button_Click zu machen funktioniert auch nicht. Das Form lädt zwar einwandfrei hoch, aber sobald der Button gedrückt wird friert das Programm leicht zeitverzögert ein (wahrscheinlich bedingt durch die Aktualisierung der anderen Anzeigeelemente).

Wenn ich den Teil mit den Comboboxen auskommentiere funktioniert alles, bis auf das bei den Comboboxen natürlich nichts ausgewählt ist. Also muss es ja irgendwie an denen liegen.

Das ganze ist übrigens Bestandteil eines PDA-Programms. Ich bin jetzt nicht der Experte auf dem Gebiet, aber kann es sein, dass der PDA eventuell zu wenig Arbeitsspeicher für solche Aktionen hat. In dem Form habe ich nämlich ein TabControl mit 3 Tabpages. 2 davon sind recht vollgestopft mit Checkboxen, Textboxen und Comboboxen. Auf der anderen Seite verändere ich ja nicht bei allen Elementen die Anzeige, sondern nur bei einigen wenigen. Somit kann ich mir das ganze auch nicht so richtig erklären.

Hallo kati82,

schade , war nur ein Verdacht.

Gruß falangkinjau

Hallo Leute,

ich glaube ich habe den Fehler jetzt gefunden. Ich übernehme nämlich per "get" und "set" aus dem vorherigen Form eine Variable. Komischerweise übernimmt er die Variable korrekt und der Quellcode wird ganz normal durchlaufen, aber das Form friert trotzdem ein.

Ich bin jetzt den Umweg gegangen, dass ich den Wert in eine Datei zwischenspeichere. Zumindest funktioniert es so. Warum das bei mir mit get und set nicht funktioniert kann ich mir allerdings nichts so richtig erklären.

Ciao kati82