private void ResizeListViewColumns(MaterialListView lv) { int[] headerWidths = listViewHeaderWidths.ContainsKey(lv.Name) ? listViewHeaderWidths[lv.Name] : null; lv.BeginUpdate(); if (headerWidths == null) { lv.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); headerWidths = new int[lv.Columns.Count]; for (int i = 0; i < lv.Columns.Count; i++) { headerWidths[i] = lv.Columns[i].Width; } listViewHeaderWidths.Add(lv.Name, headerWidths); } lv.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); for (int j = 0; j < lv.Columns.Count; j++) { lv.Columns[j].Width = Math.Max(lv.Columns[j].Width, headerWidths[j]); } lv.EndUpdate(); }