/** Questo metodo intercetta l'input del mouse sulla cella contenente l'indirizzo ip del server **/
        void DataGridServer_GotMouseCapture(object sender, MouseEventArgs e)
        {
            int item = DataGridServer.SelectedIndex;

            if (item < MainWindow.listIp.Count) // Ho cliccato su una riga valorizzata
            {
                IpAddress i = (IpAddress)DataGridServer.SelectedItem;
                if (i != null)
                {
                    ConnectWindow c = new ConnectWindow();
                    c.ipAddress.Text    = i.ipAddress;
                    MainWindow.serverIP = System.Net.IPAddress.Parse(i.ipAddress);
                    c.Show();
                    this.Close();
                }
            }
        }
        private void connect(object sender, RoutedEventArgs e)
        {
            ConnectWindow c = new ConnectWindow();

            c.Show();
        }
        private async void _listener_OnKeyPressed(object sender, INPUT e)
        {
            bool error = false; string message = "";

            try
            {
                if (Keyboard.Modifiers == ModifierKeys.Control)
                {
                    Key k          = KeyInterop.KeyFromVirtualKey(e.ki.wVk);
                    int virtualKey = KeyInterop.VirtualKeyFromKey(k);
                    if (k == Key.N)
                    {
                        // Invio della clipboard del client
                        ClientManager.NotifyClipboardAsynch();
                    }
                    else if (k == Key.M)
                    {
                        // Richiesta della clipboard al server
                        ClipboardTrasfer.SendUpdateRequest();
                    }
                    else if (virtualKey >= (int)VirtualKeyCode.VK_1 && virtualKey <= (int)VirtualKeyCode.VK_9) // Switch
                    {
                        virtualKey -= (int)VirtualKeyCode.VK_0;
                        if (virtualKey <= listIp.Count)
                        {
                            serverIP = IPAddress.Parse(listIp[virtualKey - 1].ipAddress);
                            Connection.disconnectFromServer();
                            ConnectWindow c = new ConnectWindow();
                            c.Show();
                        }
                    }
                    else if (virtualKey == (int)VirtualKeyCode.VK_0) // Disconnect
                    {
                        MessageDialogResult result = await this.ShowMessageAsync("Exit", "Are you sure you want to disconnect?", MessageDialogStyle.AffirmativeAndNegative, WPFProperties.metroDialogSettings);

                        if (result == MessageDialogResult.Affirmative)
                        {
                            if (disconnectButton.IsEnabled)
                            {
                                Connection.disconnectFromServer();
                            }
                        }
                    }
                    else
                    {
                        ClientManager.NotifyInputAsynch(e);
                    }
                }
                else
                {
                    ClientManager.NotifyInputAsynch(e);
                }
            }
            catch (Exception ex)
            {
                error   = true;
                message = ex.Message;
            }
            if (error)
            {
                MessageDialogResult result = await this.ShowMessageAsync("Error: " + message, "You are now disconnected from server", MessageDialogStyle.Affirmative, WPFProperties.metroDialogSettings);
            }
        }