Howdy Thomas,
Yes, you can use the MultiColumns and populate manually, but you still have to use the .NET-style data source for the combo box. Basically, you have to have a list behind the combo box that defines the items, and the easiest way to do this is with a DataTable, but you can just as easily create a custom class with a few properties and use a generic list with a BindingSource, but the DataTable already has all of those interfaces on it.
- Create a DataTable with 3 columns, "Display" (string), "Value" (object), and "DropDown" (string).
- Populate it with rows for the items you want in the combo box
- The value in the Display column will show as the selected item when the combo box is closed
- The value in the Value column will be the SelectedValue on the combo box for binding
- The value in the DropDown column will be what is used to render the drop down. Combine all of the columns into this field and pipe delimit them: "Column 1|Column 2|Column 3" The pipes are used to split the columns when rendering the drop down.
- Set the UseMultiColumns to true
- Set DropDownMember to "DropDown"
- Set DisplayMember to "Display"
- Set ValueMember to "Value"
- Set the DataSource property to your data table.
That should do it. Anything you put into the DataTable gets added as a row in the combobox.