Listbox checks used like radiobuttons

I have a listbox with 30 rows , and one column defined as checkboxes.
I want exactly one item to be checked.

With no code, the user can select or unselect as many items as they wish.

In the cell click event I tried to record the clicked cell, then set all the check states to false, then set the check state of the clicked row to be true.
This does not work.
I added invalidate and refresh in case it was simply not repainting, this also didnt do what I needed.

I tried trapping mouse down and mouse up but havent made much progress there.

Has anyone used a listbox in this way before and can give me a hint to an elegant way to handle this?

Solved it.
CellCheck(row,column) has no effect.

Instead I need to resort to cellstate(row,column) syntax

me.cellstate(xx,2) = Checkbox.CheckedStates.unChecked

I just did this :

Function CellClick(row as Integer, column as Integer, x as Integer, y as Integer) As Boolean if column = 0 then if me.CellState(row,column) = checkbox.CheckedStates.UnChecked then// Cell will be checked for i as integer = 0 to me.ListCount-1 me.CellState(i,column) = checkbox.CheckedStates.UnChecked // Uncheck all rows next end if end if End Function