# Listbox Cell x,y

I think I’m overlooking something but is there a way to find out the current x,y Left & Top of a given Listbox Cell?

I’m trying to EmbedWithin PopUpMenu’s but can’t seem to figure out how to position them.

Something like that works. I did not optimize it. I start X from zero, but it could start from the width of the preceding columns. Also, I placed a check for ScrollPosition, but if the listbox scrolls horizontally, you want also to check if the cell is visible. Unless you click on it, of course, then you can use a similar method to find the limits of the cell from the current mouse coordinates.

```Function CellPos(extends LB as ListBox, Row as Integer, Column as Integer) As Integer() Dim Result(1), X, Y as Integer If Row < LB.ScrollPosition then Result(0) = -1 Result(1) = -1 return Result else Y = 1 For X = 0 to LB.width system.DebugLog str(LB.ColumnFromXY(X,Y)) if LB.ColumnFromXY(X,Y) = Column then Result(0) = X exit end if next For Y = 0 to LB.Height if LB.RowFromXY(X,Y) = Row then Result(1) = Y exit end if next end if Return Result End Function ```

Button :

```Sub Action() Dim Result() as Integer = Listbox1.CellPos(3,1) MsgBox str(result(0))+" "+str(result(1)) End Sub ```

Thank you Michel!

Wouldn’t it be easier to directly calculate instead of searching

[code]Function CellPos(extends lb As Listbox, row As integer, column As integer) As REALbasic.Point

dim x As integer = -lb.ScrollPositionX
for i As integer = 0 to column - 1
x = x + lb.Column(i).WidthActual
next

dim y As integer = (row - lb.ScrollPosition) * lb.RowHeight

return new REALbasic.Point(x, y)

End Function[/code]

Nice!!
And the first time I see REALBasic.Point.
So cool. Learning every day. Thanks!

Will’s method won’t work if the listbox has headers. In that case, use Michel’s version.

``if lb.HasHeading then y = y + lb.HeaderHeight``

Will’s method will work fine since vertically the ListBox is not using smooth scrolling, and ScrollPositionX is in pixels.

If the header is turned off IMO it should return 0, but that is just me! 