Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/14/19 12:25:54 (5 years ago)
Author:
abeham
Message:

#2949: Disable autosizing when there is only one column and use width of list view as size of column. In addition no update occurs on ToStringChanged when there is only one column (most common case)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/HeuristicLab.Core.Views/3.3/ItemCollectionView.cs

    r16565 r17008  
    221221    protected virtual void itemsListView_SelectedIndexChanged(object sender, EventArgs e) {
    222222      removeButton.Enabled = (Content != null) && !Content.IsReadOnly && !ReadOnly && itemsListView.SelectedItems.Count > 0;
    223       AdjustListViewColumnSizes();
    224223      if (showDetailsCheckBox.Checked) {
    225224        if (itemsListView.SelectedItems.Count == 1) {
     
    327326      }
    328327    }
     328    protected virtual void itemsListView_Layout(object sender, LayoutEventArgs e) {
     329      if (itemsListView.Columns.Count == 1)
     330        AdjustListViewColumnSizes();
     331    }
    329332    #endregion
    330333
     
    423426        foreach (ListViewItem listViewItem in GetListViewItemsForItem(item))
    424427          UpdateListViewItemText(listViewItem);
    425         AdjustListViewColumnSizes();
     428        if (itemsListView.Columns.Count > 1)
     429          AdjustListViewColumnSizes();
    426430      }
    427431    }
     
    435439    }
    436440    protected virtual void AdjustListViewColumnSizes() {
    437       if (itemsListView.Items.Count > 0) {
    438         for (int i = 0; i < itemsListView.Columns.Count; i++)
    439           itemsListView.Columns[i].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
     441      if (itemsListView.Columns.Count == 1) {
     442        if (itemsListView.Columns[0].Width != itemsListView.ClientSize.Width)
     443          itemsListView.Columns[0].Width = itemsListView.ClientSize.Width;
     444      } else {
     445        if (itemsListView.Items.Count > 0) {
     446          for (int i = 0; i < itemsListView.Columns.Count; i++)
     447            itemsListView.Columns[i].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
     448        }
    440449      }
    441450    }
Note: See TracChangeset for help on using the changeset viewer.