Horstiii Geschrieben 27. Mai 2009 Geschrieben 27. Mai 2009 Hallöle, ich möchte eine c# anwendung schreiben, bei der alle dateien die in einem bestimmtem ordner sind, in einer ListBox aufgelistet werden. Kann mir da jemand einen tip geben wie ich das am besten machen kann?! gruß Horstiii
Horstiii Geschrieben 27. Mai 2009 Autor Geschrieben 27. Mai 2009 Okay, das hilft mir weiter, aber wie bekomme ich die sachen jetzz in die ListBox? xD
Horstiii Geschrieben 27. Mai 2009 Autor Geschrieben 27. Mai 2009 Also mein quellcode sieht folgendermaßen aus: string test = Convert.ToString(Directory.GetFiles("C:/Dokumente und Einstellungen/User/Eigene Dateien/Visual Studio 2008/Projects/backup/source/")); ListBox1.Items.Add(test); aber in der listbox steht immer nur "System.String[]" der ordner wird gefunden es ist auch eine datei drinne.
TDM Geschrieben 27. Mai 2009 Geschrieben 27. Mai 2009 GetFiles liefert auch ein Array zurück. Einfach durchiterieren...
Horstiii Geschrieben 27. Mai 2009 Autor Geschrieben 27. Mai 2009 mhm, aso. öhm was ist durchiterieren? wie mach ich das? aus string "test" hab ich nu ein array gemacht.
TDM Geschrieben 27. Mai 2009 Geschrieben 27. Mai 2009 string path = "C:/Dokumente und Einstellungen/User/Eigene Dateien/Visual Studio 2008/Projects/backup/source/"; foreach(string file in Directory.GetFiles(path)) [INDENT]ListBox1.Items.Add(file); [/INDENT]
Horstiii Geschrieben 27. Mai 2009 Autor Geschrieben 27. Mai 2009 cool, vielen dank es funktioniert =)
Horstiii Geschrieben 5. Juni 2009 Autor Geschrieben 5. Juni 2009 Also ich hab jetzz die Datein in einer CheckBoxList, aber bekomme es nicht hin den Dateinamen mit SelectedItem auszulesen. Kann mir einer helfen?
Kati82 Geschrieben 5. Juni 2009 Geschrieben 5. Juni 2009 SelectedItem liefert glaube ich nur einen Index zurück. Vielleicht bringt dich SelectedValue eher weiter.
Horstiii Geschrieben 5. Juni 2009 Autor Geschrieben 5. Juni 2009 (bearbeitet) Ich habe bereits SelectedValue, SelectedItem und SelectedIndex und nichts von den dreien geht. Aber früher hab ich mal eins von den dreien probiert und da hat es funktioniert, das is irgendwie komisch. Bearbeitet 5. Juni 2009 von Horstiii
Kati82 Geschrieben 5. Juni 2009 Geschrieben 5. Juni 2009 (bearbeitet) string s = checkedlistbox.Items[checkedlistbox.SelectedIndex].ToString(); Irgendwie so in der Art. Edit: "checkedlistbox.Items[checkedlistbox.SelectedIndex].Text" müsste es auch geben. Bearbeitet 5. Juni 2009 von Kati82
Horstiii Geschrieben 5. Juni 2009 Autor Geschrieben 5. Juni 2009 Funktioniert beides nicht, bekomme immer die meldung "Out of range exception" der wert sei wohl negativ. das müsste doch auch mit ner foreach schleife hinzubekommen sein, z.b. um mehrere werte gleichzeitig aus der checkboxlist auszulesen: foreach (string liste in checkedlistbox.SelectedItem.ToString()) if (checkedlistbox.ToString() == checked) { } das funktioniert leider auch nicht, kann das jemand so umformen das es geht?
Kati82 Geschrieben 5. Juni 2009 Geschrieben 5. Juni 2009 if (checkedlistbox.ToString() == checked) Das kann an der Stelle nicht funktionieren, da checkedlistbox.ToString() irgendwas zurückliefert wie "System.Windows.Forms.CheckedListbox". Du vergleichst also einen String mit irgendeiner anderen Eigenschaft (das ist der berühmte Vergleich zwischen Äpfeln und Birnen). Und außerdem: Wo kommt das checked her? Ehe ich hier irgendeinen Code liefere, erst mal eine andere Sache. Was möchtest du denn jetzt genau haben. "Selected" ist meines Wissen das Item, was gerade angewählt ist, also die Zeile, die mit so nem blauen Balken hinterlegt ist. Ich vermute jetzt aber einfach mal, dass du alle Dateien bzw. Items herausfinden möchtest, deren CheckBox angekreuzt ist. Sehe ich das richtig?
Horstiii Geschrieben 5. Juni 2009 Autor Geschrieben 5. Juni 2009 Ja das ist richtig, ich möchte alle angehackten Items auslesen. Mit der If abfrage in verbindung mit checked, wollte ich überprüfen ob ob ein Item checked, also angehackt ist. wäre cool wenn du mir helfen könntest
Kati82 Geschrieben 5. Juni 2009 Geschrieben 5. Juni 2009 War mir schon klar was du mit dem if wolltest, aber wie gesagt, Äpfel mit Birnen vergleichen geht nicht. Ich hab da ein schönes Beispiel in der MSDN gefunden. Ich würde mir allerdings vorher eine Liste von Strings anlegen und in der foreach-Schleife das entsprechende Item der Liste hinzufügen. Das würde dann so aussehen: List<String> checkedFiles = new List<String>(); foreach(object itemChecked in checkedListBox1.CheckedItems) { checkedFiles.Add(itemChecked.ToString()); } Somit müsstest du eine Liste mit allen angekreuzten Dateinamen haben, die du dann später durchiterieren kannst. Konnte das jetzt allerdings nicht nachprüfen. Hoffentlich stimmt auch die Syntax. Hab schon seit Ewigkeiten kein C# mehr gemacht.
Horstiii Geschrieben 5. Juni 2009 Autor Geschrieben 5. Juni 2009 Er findet leider CheckedItems nicht, ich arbeite mit einer webanwendung, nicht mit windows forms. Gibt es ne alternative zu CheckedItems?
Kati82 Geschrieben 5. Juni 2009 Geschrieben 5. Juni 2009 Ich hab leider Null Ahnung von Webanwendungen, aber sowas müsste doch gehen: foreach( ListItem item in CheckBoxList1.Items ) { if( item.checked ) ...; } Ansonsten musst du halt bei Google suchen. Ich kann dir da leider nicht mehr weiterhelfen.
Horstiii Geschrieben 5. Juni 2009 Autor Geschrieben 5. Juni 2009 soweit hab ich das auch schon geschafft, aber irgendwie will die if abfrage nicht.... if (item.checked) funktioniert leider nicht, es gibt nur item.selected da hab ich dann folgendes raus gemacht.... if (item.selected == true) { } aber item.selected is irgendwie immer false
Horstiii Geschrieben 9. Juni 2009 Autor Geschrieben 9. Juni 2009 Ich brauche immernoch hilfe wie ich auslese welches Item ausgewählt wurde. Mehr muss ich garnicht wissen, die Items werden dann in ein Array gepackt.
Horstiii Geschrieben 10. Juni 2009 Autor Geschrieben 10. Juni 2009 Ich habe eine CkeckBoxList die dynamisch mit folgendem Code gefüllt wird: CheckBoxList1.Items.Clear(); string path = MapPathSecure("/source/"); foreach (string file in Directory.GetFiles(path)) CheckBoxList1.Items.Add(file.Substring(93)); jetzz wollte ich mit: if (itm.Selected == true) { SelectedItems.Add(itm.Value); } überprüfen ob ein Item angehackt wurde oder nicht, nur leider wird mir immer false zurück geliefert. Wenn ich die CheckBoxList statisch fülle also einen festen wert eintrage, dann wird beim anhacken auch true zurück geliefert. hat da einer ne idee?
Klotzkopp Geschrieben 10. Juni 2009 Geschrieben 10. Juni 2009 Wenn ich die CheckBoxList statisch fülle also einen festen wert eintrage, dann wird beim anhacken auch true zurück geliefert.Kommen da Äxte zum Einsatz, oder warum sprichst du von "Hacken"? Hast du mit dem Debugger geprüft, dass Selected false ist, oder schließt du das aus dem beobachteten Verhalten des Programms? Wie ermittelst du itm?
Kati82 Geschrieben 10. Juni 2009 Geschrieben 10. Juni 2009 Schau dir mal das Beispiel an: ASP.NET CheckBoxList selected items
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden