+           We remember the current size of the last column, before resizing,
+           as the preferred minimum width if we haven't previously been given
+           or calculated a minimum width.  This ensure that repeated calls to
+           _doResize() don't cause the last column to size itself too large.
+       """
+       numCols = self.GetColumnCount()
+       if numCols == 0: return # Nothing to resize.
+
+       if self._lastColMinWidth == None:
+           self._lastColMinWidth = self.GetColumnWidth(numCols - 1)
+
+       listWidth = self.GetSize().width
+       if self.GetItemCount() > self.GetCountPerPage():
+           # We're showing the vertical scrollbar -> allow for scrollbar width
+           scrollWidth = wxSystemSettings_GetSystemMetric(wxSYS_VSCROLL_X)
+           listWidth = listWidth - scrollWidth
+
+       totColWidth = 0 # Width of all columns except last one.
+       for col in range(numCols-1):
+           totColWidth = totColWidth + self.GetColumnWidth(col)
+
+       lastColWidth = self.GetColumnWidth(numCols - 1)
+
+       margin = 6 # NOTE: This is the extra number of pixels required to make
+                  #       the wxListCtrl size correctly, at least under
+                  #       Windows 2000.  Unfortunately, different OSs and
+                  #       even different versions of the same OS may implement
+                  #       the wxListCtrl differently, so different margins may
+                  #       be needed to get the columns resized correctly.  No
+                  #       doubt the margin could be calculated in a more
+                  #       intelligent manner...
+
+       if totColWidth + self._lastColMinWidth > listWidth - margin:
+           # We haven't got the width to show the last column at its minimum
+           # width -> set it to its minimum width and allow the horizontal
+           # scrollbar to show.
+           self.SetColumnWidth(numCols-1, self._lastColMinWidth)
+           return
+
+       # Resize the last column to take up the remaining available space.
+
+       self.SetColumnWidth(numCols-1, listWidth - totColWidth - margin)
+
+
+
+#----------------------------------------------------------------------------