public static CustomListView GenerateCustomListView(Control parent, string[] columnNames, bool gridLines = false, bool multiselect = false) { var lvw = new CustomListView { Parent = parent, Dock = DockStyle.Fill, View = View.Details, GridLines = gridLines, FullRowSelect = true, MultiSelect = multiselect }; for (int i = 0; i < columnNames.Length; i++) { var key = i.ToString(); var text = columnNames[i]; lvw.Columns.Add(key, text); } lvw.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); return(lvw); }
partial void InitializeMainWindow() { ClientSize = new Size(640, 480); Text = "WSL Manager"; StartPosition = FormStartPosition.WindowsDefaultBounds; Load += MainForm_Load; layout = new ToolStripContainer() { Parent = this, Dock = DockStyle.Fill, }; listView = new CustomListView() { Parent = layout.ContentPanel, Dock = DockStyle.Fill, View = View.Details, MultiSelect = false, Sorting = SortOrder.None, FullRowSelect = true, LargeImageList = largeImageList, SmallImageList = smallImageList, BaseSmallImageList = smallImageList, StateImageList = stateImageList, DataSource = bindingSource, EnableAutoScaleColumn = true, ColumnScaleList = new Collection <float>(new float[] { 3f, 1f, 1f, 1f, }), UseExplorerTheme = true, UseTranslucentHotItem = true, UseTranslucentSelection = true, ShowHeaderInAllViews = false, ShowGroups = false, }; listView.PrimarySortColumn = listView.AllColumns.Find(x => string.Equals( x.Name, nameof(WslDistro.DistroName), StringComparison.Ordinal)); listView.PrimarySortOrder = SortOrder.Ascending; listView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); var defaultDistroColumn = listView.AllColumns.Find(x => string.Equals( x.Name, nameof(WslDistro.IsDefault), StringComparison.Ordinal)); if (defaultDistroColumn != null) { defaultDistroColumn.IsEditable = false; } var distroNameColumn = listView.AllColumns.Find(x => string.Equals( x.Name, nameof(WslDistro.DistroName), StringComparison.Ordinal)); if (distroNameColumn != null) { distroNameColumn.ImageGetter = new ImageGetterDelegate(o => { var modelName = ((o as WslDistro)?.DistroName ?? string.Empty).Trim(); var keyList = Resources.LogoImages.Keys.ToArray(); return(keyList.FirstOrDefault(x => modelName.Contains(x, StringComparison.OrdinalIgnoreCase)) ?? string.Empty); }); } listView.KeyUp += ListView_KeyUp; listView.MouseDown += ListView_MouseDown; listView.ItemActivate += ListView_ItemActivate; listView.FormatRow += ListView_FormatRow; statusStrip = new StatusStrip() { Parent = layout.BottomToolStripPanel, Dock = DockStyle.Fill, }; statusItem = new ToolStripStatusLabel() { Spring = true, Text = "Ready", TextAlign = ContentAlignment.MiddleLeft, }; statusStrip.Items.Add(statusItem); }