Autor Beitrag
DennisXX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133



BeitragVerfasst: Di 30.08.11 14:12 
Hallo zusammen !

kann mir vielleicht jemand sagen, wie ich den Namen eines aktuellen selektierten Items aus einer ListView auslesen kann. Mit meinen bisherigen Code bekomme ich anderes Ergebnis:

ausblenden C#-Quelltext
1:
lvSourceDatabaseValues.SelectedItems.ToString();					


Danke sehr für Hilfe!

Viele Grüße
Dennis
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Di 30.08.11 14:19 
Wie wäre es mit der "Text"-Property vom ListViewItem?
(Im Normalfall solltest du beim Intelli-Sense einiges finden. Einfach mal den . tippen und schaun was für Vorschläge gemacht werden. Je nachdem welche Entwicklungsumgebung du verwendest...)
DennisXX Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133



BeitragVerfasst: Di 30.08.11 14:24 
Leider sehe ich in meinem Intellisense keine Porperty mit Namen Text, name oder ähnlichem :-( ich glaube, wenn es so einfach wäre, dann wäre ich auchs elbst darauf gekommen und ausprobiert hatte ich es bereits.

Viele Grüße
Dennis
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Di 30.08.11 14:27 
Ah ich sehe grad den Fehler:
Du hast die ItemCollection und nicht ein einzelnes Item.
SelectedItems -> mehrere
Du kannst per Schleife durchlaufen oder per Index auf ein bestimmtes zugreifen.
DennisXX Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133



BeitragVerfasst: Mi 31.08.11 09:42 
Guten Morgen zusammen !

Ich habe noch einmal eine Frage zu dem ListView Element. Es sei der folgende Kopf einer For-Schleife gegeben:

ausblenden C#-Quelltext
1:
for (int i = 0; i < lvSourceDatabaseValues.Items.Count; i++)					


Muss die i Variable bei 0 beginnen, um alle Elemente in lvSourceDatabaseValues.Items.Count; auszulesen, oder bei 1 ?

Viele Grüße
Dennis
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Mi 31.08.11 09:45 
Der Schleifenkopf ist korrekt.
Der Index der ItemCollection geht bei 0 los und endet bei Count-1.
DennisXX Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133



BeitragVerfasst: Mi 31.08.11 10:42 
Hallo zusammen !

kann mir vielelicht jemand von euch sagen, was hier in diesem Code falsch ist? Die Variable intNumber of SelectedValues beträgt in diesem Fall 1 und der Absturz erfolgt in dieser Zeile: strSelectedValues[intArrayIndex] = lvSourceDatabaseValues.SelectedItems[i].Text;

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
string[] strSelectedValues = new string[intNumberOfSelectedValues];
int intArrayIndex = 0;

for (int i = 0; i < lvSourceDatabaseValues.Items.Count; i++)
{
   if (lvSourceDatabaseValues.Items[i].Selected)
   {
      strSelectedValues[intArrayIndex] = lvSourceDatabaseValues.SelectedItems[i].Text;
      intArrayIndex = intArrayIndex + 1;
   }
}


Ich bekomme eine Exception, das der Indexwert1 ungültig sei!?

Viele Grüße
Dennis
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 31.08.11 10:58 
Einmal verwendest du Items, einmal SelectedItems, das kann nicht gut gehen. Iteriere einfach über SelectedItems, dann brauchst du auch das if nicht mehr.

_________________
>λ=
DennisXX Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133



BeitragVerfasst: Mi 31.08.11 11:55 
Hallo zusammen !

Kennt jemand von euch vielleicht das Event, welches immer dann ausgelöst wird, wenn man in einem Listenfeld einen einzelnen Wert anklickt bzw. selektiert? Welches Event ist das?

Besteht eigentlich die Möglichkeit mehrere Werte in einem Listenfeld zu selektieren, ohne die StrG Taste gedrückt zu halten. Gibt es dafür eine Möglichkeit?

Gibt es auch eine Möglichkeit Werte per C Sharp direkt zu selektieren?

Viele Grüße
Dennis
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4807
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mi 31.08.11 13:08 
Hallo Dennis,

bitte schau dir mal in Ruhe die einzelnen Eigenschaften und Ereignisse der ListView-Klasse in der MSDN an: msdn.microsoft.com/e....forms.listview.aspx
(Tipp: suche nach "Select(ed/ion)")

Und noch ein allgemeiner Tipp für die MSDN:
um nur die direkten Elemente einer Klasse (ohne die vererbten Elemente z.B. von Control) durchzuschauen, kann man im linken Baum unter "Constructor", "Methods", "Properties" oder "Events" den Knoten anklicken und man sieht diese dann als Unterelemente.

Ich selber benutze immer die lokale MSDN-Hilfe (noch vom VS 2008) und dort kann man dann explizit ganz oben anstatt "Member: Alle anzeigen", dann "Geschütze Member einschließen" und "Geerbte Member einschließen" deaktivieren (leider merkt es sich nicht diese Einstellung und man muß jedesmal diese CheckBoxen anklicken).

Um doch noch konkret auf deine Fragen zu antworten:
Die ListView kennt im Gegensatz zur ListBox (SelectionMode) nur die Einstellung "MultiSelect = true/false" - eine Alternative wäre evtl. die CheckBoxen zu aktivieren.

Und mittels SelectedItems.Clear bzw. SelectedItems.Add kannst du auch programmtechnisch die einzelnen Werte (de-)selektieren.