private void scanNICs()
        {
            // Clear network interfaces if not empty already
            if (NIC_select.Items.Count > 0)
            {
                NIC_select.Items.Clear();
            }
            foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
            {
                if (activeNICsCB.Checked && nic.OperationalStatus != OperationalStatus.Up)
                {
                    continue;
                }

                ComboboxItem item = new ComboboxItem();
                item.Text  = nic.Description.ToString();
                item.Value = nic;

                NIC_select.Items.Add(item);
            }

            // Restore selected NIC from settings if saved
            if (!string.IsNullOrEmpty(Settings.Default.NIC))
            {
                NIC_select.SelectedIndex = NIC_select.FindStringExact(Settings.Default.NIC);
            }
        }
        public MainMenu()
        {
            AutoUpdater.Start("https://www.tryallthethings.xyz/downloads/DNS-Swapper.xml");

            InitializeComponent();

            // Upgrade settings file (user.config in %LOCALAPPDATA%\DNS_Swapper from previous version
            Settings.Default.Upgrade();

            // Load network interfaces
            scanNICs();

            // Load previously saved user settings
            NIC_select.SelectedIndex = NIC_select.FindStringExact(Settings.Default.NIC);

            // Remove blank in IP-Address
            string DNS1_var = Settings.Default.DNS_1.Replace(" ", string.Empty);
            string DNS2_var = Settings.Default.DNS_2.Replace(" ", string.Empty);
            // Variables used for validated IP-Addresses
            IPAddress DNS1_IP = new IPAddress(new byte[] { 127, 0, 0, 1 });
            IPAddress DNS2_IP = new IPAddress(new byte[] { 127, 0, 0, 1 });

            if (string.IsNullOrEmpty(DNS1_var) || string.IsNullOrEmpty(DNS2_var))
            {
                // No DNS servers configured
                MessageBox.Show("Tool not configured yet", "DNS-Swapper configuration missing", MessageBoxButtons.OK, MessageBoxIcon.Information);
                Show();
                WindowState   = FormWindowState.Normal;
                ShowInTaskbar = true;
            }
            else
            {
                // Validate configuration
                if (IPAddress.TryParse(DNS1_var, out DNS1_IP) && IPAddress.TryParse(DNS2_var, out DNS2_IP))
                {
                    // DNS server IPs valid
                    // Set Loaded variables into settings text boxes
                    DNS_1.Text = DNS1_var;
                    DNS_2.Text = DNS2_var;

                    // Set taskbar icon color
                    if (NIC_select.SelectedItem != null && !string.IsNullOrEmpty(DNS_1.Text) && !string.IsNullOrEmpty(DNS_2.Text))
                    {
                        if (NetworkManagement.getDNS(NIC_select.SelectedItem.ToString()).Equals(DNS1_IP))
                        {
                            taskBarIcon.Icon = Resource1.icon_red;
                            changeToggleBtnPosition(false);
                        }
                        else if (NetworkManagement.getDNS(NIC_select.SelectedItem.ToString()).Equals(DNS2_IP))
                        {
                            taskBarIcon.Icon = Resource1.icon_blue;
                            changeToggleBtnPosition(true);
                        }
                    }
                }
                else
                {
                    // DNS server IP(s) invalid - display error message
                    MessageBox.Show("Invalid configuration detected. Resetting settings to default", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    resetToolStripMenuItem_Click(null, null);
                    saveSettings();
                    Show();
                    WindowState   = FormWindowState.Normal;
                    ShowInTaskbar = true;
                }
            }
        }