An unhandled exception - Doch warum

Konstantin Gross

Erfahrenes Mitglied
Hallo,
in meinem aktuellsten Projekt habe ich links eine OutlookBar wenn der User auf einen Button klickt, soll das entsprechende Control in das Panel geladen werden. Was auch funktioniert nur seit gerade eben klappt es bei einem bestimmten Control nicht und zwar heißt dieses Kontroll "Prozesse" dort habe ich sozusagen eine Prozessverwaltung programmiert. Nun wenn ich jetzt auf den Button Prozesse klicke lädt er und sobald ich den ersten Eintrag von einem Prozess in der ListBox sehe kommt sofort eine Fehlermeldung, die aber über einen anderen Grund aufgerufen wird:

An unhandled exception of type 'System.ArgumentException' occurred in system.windows.forms.dll

Additional information: Die Items-Auflistung kann nicht geändert werden, wenn die DataSource-Eigenschaft gesetzt ist.

Und als Fehlerquelle, zumindest das was er in VS grün markiert ist folgende Zeile:
Code:
switch(barHardware.Buttons.IndexOf(e.Button))
{
case 0:
Panel.Controls.Clear();
splash.Show();
Application.DoEvents();
Panel.Controls.Add(systeminfo);
splash.Close();
break;
case 1:
Panel.Controls.Clear();
Panel.Controls.Add(prozesse);
break; <-------------- Diese Zeile markiert er zu der Fehlermeldung
}

Also hätte da einer ne Idee?
 
Zuletzt bearbeitet:
Ahja und das:
Code:
private void ListBoxFull()
{
Process [] prozesse = Process.GetProcesses(Environment.MachineName);
listBox_Prozess.DataSource = prozesse;
listBox_Prozess.DisplayMember = "ProcessName";
}

wird bei dem Control "Prozesse" beim Prozesse_Load() ausgeführt.
 
Du versuchst nicht zufällig, der listBox_Prozess nach dem Laden weitere Elemente mit der .Add Methode hinzuzufügen?
 
Hat den keiner eine Idee? Sonst müsste ich es anders einbauen, was ich aber nicht will, da wie es zurzeit reingeladen wird perfekt ist, währe nur dieser Fehler nicht da :mad:
 
Naja. Derzeit befüllst Du ja Deine Listbox über .DataSource =. Damit hat das Programm ja ein Problem. Ich würde das entweder über ein foreach machen und für jedes Item Listbox.Items.Add(Prozessitem) oder vielleicht probierst Du mal eine eigene Classe zu instanzieren, die Du mit Deinen Daten SystemInfo oder Prozesse befüllen kannst und die auf die Listbox angeschlossen ist. Dies sollte dann auch funktionieren (Habe ich aber nicht probiert!)
 
Das Problem ist ja nicht die Datasource, sondern, dass man nicht die Datasource Eigenschaft verwenden kann und zusätzlich Items mit .add hinzufügen kann. Ich würde also auf den Vorschlag von LieberNet eingehen und dir die Items aus der Datenquelle manuell hinzufügen lassen.
 
Hallo,
ich habe das jetzt anders geregelt da es zuviel Arbeit währe meinen Code umzuschreiben und zwar habe ich das in eine seperate Form gesteckt, wodurch sich die Probleme erübrigt habe. :)
 

Neue Beiträge

Zurück