If AutoResizeColumnWidths is called on an empty table, it will smash all of the column headers up.
It also seems I need to call a .Refresh() on it before calling AutoResize or the widths do not correctly get calculated.
I do a lot of populating of hidden tables.. unfortunately the only work around that seems to work correctly is to check if the form/table are Visible, and only if they are, then call AutoResize, or else it smashes the column headers up just like if the table were empty.