Last I saw, the rows all have to be the same height. I guess what I’m looking for is how get the aggregated height of all the lines, then increase the default row height to that.
Well, you have the cell width, so that’s your wrap value. Then use g.TextHeight to get the height that your chunk of text will occupy. That’s then your row height. I don’t know whether explicit line ends work properly with that, so it may be a case of doing it for each bit and then adding them up. So you may need to experiment a little.
If text with lineends needs special treatment, split the text into an array on lineend and then a simple loop over the array should work nicely. But that may not be necessary.
Listbox does not support variable row heights out of the box. @KarenA created a listbox class that can merge rows and delivers a lot more flexibility. It may be API 1, if that makes a difference.