Am 05.11.2011 um 13:34 schrieb Alex:

> 
> 
>> Gleiches erreicht man übrigens auch, wenn man den MouseDown-Event der 
>> Listbox mit return true beantwortet. Das habe ich zufällig entdeckt. 
>> Allerdings ist diese Variante aus meiner Sicht ungeeignet, weil sie eher 
>> einen Seiteneffekt darstellt.
> 
> Mit einem Return True im MouseDown Event sagst du quasi, dass du dich selbst 
> darum kümmerst, wenn ein Mausklick 
NIcht Mausklick, MouseDown!

> passiert. Wenn du aber sonst nichts festlegst, dann passiert eben gerade 
> nichts. Das gilt aber auch für alle Zellen, Zeilen und Spalten der Listbox - 
> nachher musst du alles selbst steuern. Korrigiert mich, falls ich falsch 
> liege ;-)

Du liegst goldrichtig! return true heißt, dass Du Dich um die Reaktion auf den 
MouseDown-Event gekümmert hast und keine RB-Reaktion mehr erfolgt. 

Somit gibt es drei Einstellmöglichkeiten für mein Problem, die Sortierung durch 
RB zu verhindern:

1. MouseDown abfangen mit return true
In dem Fall wird durch RB keine Sortierung vorgenommen und auch der Header 
reagiert nicht

2. ListBox.HeaderTypes.NotSortable
In dem Fall reagiert der Header nicht und es wird keine Sortierung vorgenommen.

3. SortColumn mit return true abfangen
In dem Fall wird keine Sortierung von RB vorgenommen, aber der Header reagiert 
und zeigt die jeweilige Sortierrichtung an, obwohl nicht sortiert wurde. 

Mein Hinweis bezog sich darauf, dass 1. und 2. für mein Problem das gleiche 
bewirken, ich aber 2. bevorzugen würde, weil diese Einstellung sich direkt auf 
den beabsichtigten Effekt bezieht. Der 1. Fall verhindert hingegen jede 
RB-Reaktion auf MouseDown und somit als Nebeneffekt auch die Sortierung der 
Spalte. 


Gruß von Jürgen




Antwort per Email an