public MainForm() { InitializeComponent(); // @STUPID(final): Visual studio designer is so stupid, it cannot recognize usercontrols properly // so we need to manually add it ourself -.- lvDoxygenIssues = new FilterListView(); lvDoxygenIssues.Dock = DockStyle.Fill; lvDoxygenIssues.ItemDoubleClick += Issues_ItemDoubleClick; SetupIssueColumns(lvDoxygenIssues); tpDoxygenIssues.Controls.Add(lvDoxygenIssues); _doxygenIssuesFilterControl = new FilterBarControl(lvDoxygenIssues); _doxygenIssuesFilterControl.ChangedFilter += (s, e) => { lvDoxygenIssues.FilterText = e; }; lvCppIssues = new FilterListView(); lvCppIssues.Dock = DockStyle.Fill; lvCppIssues.ItemDoubleClick += Issues_ItemDoubleClick; SetupIssueColumns(lvCppIssues); tpCppIssues.Controls.Add(lvCppIssues); _cppIssuesFilterControl = new FilterBarControl(lvCppIssues); _cppIssuesFilterControl.ChangedFilter += (s, e) => { lvCppIssues.FilterText = e; }; lvPerformance.ListViewItemSorter = new PerformanceListViewItemComparer(); FileVersionInfo verInfo = FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location); _appName = verInfo.ProductName; _configService = IOCContainer.Get <IConfigurationService>(); _workspace = new WorkspaceModel(); _workspace.Load(_configService); // Update UI from config settings miViewShowWhitespaces.Checked = _workspace.IsWhitespaceVisible; RefreshRecentFiles(); _searchControl = new SearchReplace.SearchReplaceControl(); Controls.Add(_searchControl); TextSelectedTimer = new System.Windows.Forms.Timer() { Enabled = true, Interval = 500 }; TextSelectedTimer.Tick += (s, e) => { if (tcFiles.TabPages.Count > 0) { Debug.Assert(tcFiles.SelectedTab != null); EditorState editorState = (EditorState)tcFiles.SelectedTab.Tag; UpdateMenuSelection(editorState); } else { UpdateMenuSelection(null); } }; NativeMethods.AddClipboardFormatListener(Handle); }