Zu dem Thema evtl. auch hilfreich:

http://support.realsoftware.com/listarchives/realbasic-nug/2010-02/msg01186.
html

Max


Am 19.08.2010 8:44 Uhr schrieb "Michael Köhler" unter <[email protected]>:

> 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