DesktopListBox.CellTextAt(row As Integer, column As Integer = 0 ) As String
When you pass just one number, that number is the row and it assumes column 0.
Safety wise I think it is not a great option, I presume a large enough number of people use many one column only lists and they provided that lazy way to address that.
No. No one designed something with the intention of being sluggish. Auxiliary functions can provide designs alike what you said IF such kind of selection is proven useful. But fast IO in matrices is a must.
Then create the visible content via the paint event. That way the listbox does the least work necessary as the paint event only fires for visible rows.
OT
i used the Tag also.
my feature request was AddRow ParamArray Item As Variant
instead of AddRow ParamArray Item As String
alternate the suggestion to paint the .Tag object self and let the String part Empty is valid but not easy to implement. there are many things to consider.