Actually, the problem is prevalent in the DataGridView as well. It seems as though you don't understand the dilemna.
I have 2 columns in a ListView, as shown in the previous examples I have provided, I suppose I could have used a simple ListBox, but that provides less configurability than the ListView.
A listview has ColumnHeaders as a sub-object of the listview control. These ColumnHeaders dictate the justification of all text in that specific column, except that column 0 can only have left justification. Subsequent ColumnHeaders allow you to align text to left, center or right. As seen in my second example, the first column (column 0) is left justified and the second column (column 1) is center. This is exactly how I want it to show with the exception of one tiny thing. I want the last item in column 0 to show "Total:" right justified.
All is not lost, because I can simply use OwnerDraw and draw the text where I want it .. right? .. except when I OwnerDraw "Total:" as right justified, Column 1 in that row is also right justified. So I thought since DrawText isn't working how I would expect for the DrawSubItem event, I would just use DrawGraphic and pass it the text values. Except the contant repainting of the control while moving the mouse over it is too much, and I end up with phantom entities.
I am not giving up on this, because I know it is possible ... heck if I can do it in a VBA ListView, why the heck doesn't it work in .NET?
Oh well ... I am going to try something else that I have not yet tried.