private void BrowserDialog_Load(object sender, EventArgs e) { try { // Suspend the drawing of the listview lvBrowsers.SuspendLayout(); // Remove all items from the listview lvBrowsers.Items.Clear(); // Assign a new imagelist lvBrowsers.LargeImageList = new ImageList { ImageSize = new Size(60, 60), ColorDepth = ColorDepth.Depth32Bit }; // Get all browsers on the system browsers = PlatformBrowser.PlatformBrowser.GetInstalledBrowsers(); // Loop through all browsers for (var i = 0; i < browsers.Count; i++) { var browser = browsers[i]; // Get image var icon = IconExtractor.Split(browser.IconPath)[browser.IconIndex < 0 ? 0 : browser.IconIndex]; var icons = IconExtractor.ExtractImagesFromIcon(icon); var largestSize = icons.Max(i => i.Width); var largestIcon = icons.LastOrDefault(i => i.Width == largestSize); lvBrowsers.LargeImageList.Images.Add(largestIcon); lvBrowsers.Items.Add(new ListViewItem { Text = browser.Name, Tag = browser.ExecutablePath.Trim('\"'), ImageIndex = i, }); } // Get default browser defaultBrowser = PlatformBrowser.PlatformBrowser.GetDefaultBrowser(browsers.ToList(), PlatformBrowser.Enums.eProtocolType.Http); // Select default browser if (browsers.Contains(defaultBrowser)) { var defaultBrowserListItem = lvBrowsers.Items[ browsers.IndexOf( browsers.FirstOrDefault(b => b.ExecutablePath == defaultBrowser.ExecutablePath) ) ]; defaultBrowserListItem.Focused = defaultBrowserListItem.Selected = true; } } catch (Exception) { // Don't interrupt the dialog } finally { lvBrowsers.ResumeLayout(); } }