Nicht nur du ;)^^

Am 18.08.2010 13:20 Uhr schrieb "Stefan Sicurella" unter
<[email protected]>:

> Super, danke.. 
> 
> RowFormXY hab ich wohl zuvor übersehen
> 
> Gruß
> 
> 
> Stefan
> 
>> Oh, das geht aber viel einfacher. Und außerdem hast Du (Michael) außer Acht
>> gelassen, dass die ListBox evtl. noch einen Header besitzt...
>> 
>> Die ListBox-Klasse hat eine Funktion "RowFromXY ( X As Integer, Y As Integer
>> ) As Integer". D. h. im MouseMove-Event brauchst Du (Stefan) nur folgendes
>> einzutragen:
>> 
>>     me.ListIndex = me.RowFromXY(x,y)
>> 
>> Die ListIndex-Eigenschaft setzt auch gleich die Markierung aller anderen
>> Zeilen zurück und löst den Change-Event aus. Nur wenn Du definitiv keinen
>> Change-Event haben willst, kannst Du die Methode von Michael verwenden ­ mit
>> dem Unterschied, dass Du die "RowFromXY" Methode verwendest, anstatt die
>> aktuelle Zeile mit Hilfe der "RowHeight" zu errechnen. Dazu müsstest Du dann
>> die letzten drei Zeilen in Michaels Beispiel ersetzen durch:
>> 
>>     dim i as Integer = me.RowFromXY(x,y)
>>     me.selected( i ) = true
>> 
>> "selected" stört es nämlich nicht, wenn Du ihm einen Wert < 0 oder >=
>> ListCount übergibst. Also ist die if-Abfrage hier überflüssig.
>> 
>> 
>> Am 17.08.2010 um 14:35 schrieb Michael Köhler:
>> 
>>> Mit Hilfe der Mathematik. Einen anderen Weg kenne ich leider nicht. Du
>>> kennst ja die Höhe deiner Zeilen (RowHeigh) und über MouseMove der Listbox
>>> weist du wo die Maus in der Listbox ist. Dann kannst du dir ausrechnen über
>>> welcher Zeile die Mouse steht.
>>> Ich würde etwa folgendes ins MouseMove-Event schreiben
>>> 
>>> Dim i As Integer
>>> 
>>> For i=0 To me.ListCount-1
>>> me.Selected(i)=false 'alle Zeile deselektieren
>>> Next
>>> 
>>> i=y/me.RowHeight 'Zeile ermitteln über der die Mouse grade ist
>>> 
>>> If i > 0 AND i < me.ListCount Then
>>> me.selected(i)=True 'Zeile selektieren über der die Mouse grade ist
>>> End
>>> 
>>> Grüße Michael
>>> 
>>> Am 17.08.2010 11:52 Uhr schrieb "Stefan Sicurella" unter
>>> <[email protected]>:
>>> 
>>>> Hi,
>>>> 
>>>> ich möchte, dass die Zeile einer Listbox als selektiert markiert ist wenn
>>>> die
>>>> Maus darüber ist und die selektierte Zeile dann auch quasi der Maus folgt.
>>>> 
>>>> wie bekomme ich heraus über welcher row die Maus gerade steht?
>>>> 
>>>> 
>>>> Gruß
>>>> 
>>>> 
>>>> Stefan
>>>> 
>>>> 
>>> 
>>> 
>>> 
>> 
>> Gruß
>> Christian
>> 
>> 
>> 
>> 
> 
> 



Antwort per Email an