REAL beginner with XOJO here

Yes, Emile, I use subtitles/closed captions on all tv shows. I don’t go to movie theaters because there’s no on-screen captions / subtitles.

Studies have shown having subtitles helps people learn better and faster, especially those whose second language is English.

Unreal Close captions all their videos on YouTube. Unity captions about 40% of theirs, and Xojo is about 0% (Autocraptions are no substitute for proper closed captions, especially when it comes to technical terms and code.)

Also, closed captions can searched by search engines, making it easier for people to find videos with information they’re searching for.

One other thing that would be great is adding chapter markers (can be done any time, even after a video is posted):


They let you see which each part of the video covers.

1 Like

Yep … found that one late last year and Jim fixed it for me. I know he incorporated the fix into one of his revisions. The app I was developing used 10 - 20 columns per DataView control

Yep … it comes close, but there are definitely secondary actions you must take to reconcile the differences.

I didn’t find that to be true in the dozen or so apps I converted. BUT, I’m sure that differs from app to app based on how it’s being used and to what extent it is integrated with the code reliant on it.

BTW … All I use is the Windows platform (used Win 7 for years because it was rock solid) and finally gave up the ghost and went to Win 10 last Fall.

Are you adding a row at the end or inserting it between two existing rows? You don’t tell us that.

We can, of course revisit for the billionth time the argument about what methods are named, such as whether the two methods should be AddRow() and AddRowAt(), or AddRow() and InsertRow(), but I really don’t see the point.

Actually, the thread starter had other things going on in his life, as has not been able to return to tinkering with XoJo, but that’s behind me now. My apologies to anyone that was inconvenienced or thought it rude. That said, I still find it somewhat surprising that the “DeskTopListView” behaves as it does. In Win32 programming, and in other languages that I see, the ListView has a header that visually is clearly defined.

While the first couple of responses to this thread mostly explain how to accomplish what I want (thank you), I have to agree with Julia Truchsess. The impression I got is that XoJo is a RAD environment. While having the ability to create brushes and other low-level elements is great, For something as mundane as “set the tile row of the list view to black text on a grey backround”, it should be just a property.


I would think the most frustrating part of this, is assuming these options would be there, and not being able to find them.

On the flip side, the nice thing about Xojo is that once you learn how to do something, it is easy to implement. Also because Xojo is flexible and extensible, we can easily extend the functionality that we think is missing and add it.

This way we only need to figure out how to do something once, and then afterwards use the helper extensions we made. For me, this is a great option, because it allows me to improve the tool in the manner I think best - and it also helps me document how something is done, that I can refer to later.

I’m assuming you turned on Use header in the inspector. That provides a typical listbox header, which is certainly distinct from the rows within the listbox.

1 Like

I guess this doesn’t directly answer your question, but take a look at my Server Ranger product. That is a ListBox on the left, and another one on the right. On the left, I am drawing my own “headers” for each row. On the right, I am using the built-in header.


I take it you mean “Listbox”.

The Listbox does have a header that is clearly defined and separate from the listbox rows. You put things in it using the ListBox’s PaintHeaderContent event, which is supplied with a graphics parameter. You then use graphics methods to put content in there, such as text and images. Here is an example:

Screenshot 2022-04-25 at 12.12.50

It may be that my experience in Win32 requires a Rosetta Stone when learning about XoJo. in Win32 a ListBOX is typically single column of text with no header, meant ot be used to select one or more items. Multiple columns, or tab stops are possible, but the user cannot change width of them. A ListVIEW, on the other hand, is an Excel-looking gadet when the report style is applied. So within my frame of reference, Both Ian and Gavin’s screen shot show a LitVIEW, but they are referred to as a ListBOX.

But, to Michael’s point, once you learn how to do something, it’s easy.

No ListBox is quite capable of multiple columns with headers. This is a 0 code project, simply placed a listbox on a new window and altered properties in Xojo and then run the project:

The same listbox with a few more settings turned on:

It now has drag resize on columns, and gridlines. It’s all the same control.

Again, terminology. In WIn32 programming, you’re right, no listBOX is capable of headers, but a ListVIEW can do it all day long, and with careful sub-classing can do colors and word wrapping.

The Xojo listbox is neither. It is a custom control.


No I’m saying that the Xojo control called ListBox is quite capable of these things, which in a Xojo context is all that matters.

1 Like