Alle ListBox-Einträge auswählen
-
Wie kann ich alle ListBox-Einträge auf einmal auswählen!
Diese Methode dauert mir einfach zu lang:
ListBox.BeginUpdate(); for (Int32 Index = 0; Index < ListBox.Items.Count; Index++) ListBox.SetSelected(Index, true); ListBox.EndUpdate();
Aus meinen Delphi-Zeiten kenne ich diese Methode:
ListBox.Perform(LB_SETSEL, 1, -1);
Aber in C# funktioniert das irgendwie nicht:
Message.Create(ListBox.Handle, 0x0185, (IntPtr)1, (IntPtr)(-1));
Wie könnte man dieses Problem am sinnvollsten lösen? Was meint ihr?
-
-
Tut mir leid, aber dein Link hilf mir überhaupt nicht weiter.
Der SelectionMode von meiner ListBox ist schon auf MultiExtended. Ich hab ja nicht gesagt das es mit der For-Schleife gar nicht funktioniert, es dauert einfach nur zulange wenn mehr als 10000 Einträge enthalten sind.
Gibt es denn keine schnellere Möglichkeit? Welche Tipps könnt ihr mir geben?
-
Haste denn mittlerweile eine optimale Lösung gefunden?
-
Nein ich weiß es leider immer noch nicht, aber wenn irgendjemand eine Idee zur Verbesserung hat, dann muss er es unbedingt posten! Bitte
-
Ich hätte ne Idee.
[DllImport("user32", CharSet = CharSet.Auto)] private static extern int SendMessage(HandleRef hWnd, int msg, int wParam, int lParam);
int LB_SETSEL = 0x185; SendMessage(new HandleRef(listBox, listBox.Handle), LB_SETSEL, 1, -1);
-
Hey super !!! DANKE !!! Es funktioniert...
Ich möchte ja jetzt nicht direkt nörgeln, aber warum geht das denn nicht mit "managed code"?