On my example, I have 2 column listbox.
I want to add new entry in top of the list box, so I used AddRowAt method.
But I cannot pass the 2 column values.
From document I get this one
For multicolumn ListBoxes, text is always assigned to column zero. Can anyone help how to pass 2 column value in AddRowAt method.
After adding the row and column zero, use CellTextAt to set the other columns.
It’s funny that AddRowAt doesn’t accept a paramarray like AddRow does.
Laughs in Xojo
Add this extension method to a module:
Public Sub AddRowAt(extends lb as Listbox, RowNumber as Integer, ParamArray str() as String) Dim columnCount As Integer = lb.ColumnCount Dim ValuesToInsertCount As Integer = Str.LastIndex + 1 Select Case True Case columnCount = ValuesToInsertCount lb.AddRow(Str(0)) // first column Dim row As Integer = lb.LastAddedRowIndex For col As Integer = 1 To Str.LastIndex lb.CellValueAt(row, col) = Str(col) Next Case columnCount > ValuesToInsertCount MessageBox "There are not enough values for all columns to be filled. Do you want to proceed?" Case columnCount < ValuesToInsertCount MessageBox "There are not enough columns for all values to be inserted. Do you want to proceed and discard the extra values?" Else MessageBox "Now I've seen everything … I'm going home." End Select End Sub
Call it like this
Listbox1.AddRowAt(5, "a", "b", "c", "d")