private void rdpClient_EventConnectionStateChange(object sender, ConnectionStateChangeEventArgs e) { if (this.InvokeRequired) { EventHandler <ConnectionStateChangeEventArgs> d = new EventHandler <ConnectionStateChangeEventArgs>(rdpClient_EventConnectionStateChange); try { ((RemoteDesktopClientForm)d.Target).Invoke(d, sender, e); } catch (Exception) { } return; } OnConnectionStateChange(e); }
/// <summary> /// Raises the <see cref="E:ConnectionStateChange" /> event. /// </summary> /// <param name="e">The <see cref="ConnectionStateChangeEventArgs"/> instance containing the event data.</param> protected virtual void OnConnectionStateChange(ConnectionStateChangeEventArgs e) { if (e.IsConnected) { reconnectToolStripMenuItem.Enabled = false; disconnectToolStripMenuItem.Enabled = true; } else { reconnectToolStripMenuItem.Enabled = true; disconnectToolStripMenuItem.Enabled = false; fullScreenToolStripMenuItem.Enabled = false; pauseToolStripMenuItem.Enabled = false; pauseToolStripMenuItem.Text = Resources.cmPause; setQualityToolStripMenuItem.Enabled = false; refreshScreenToolStripMenuItem.Enabled = false; sendAFileToolStripMenuItem.Enabled = false; rdpClient.UnsubscribeForKeys(new KeysSubscription(Keys.F, false, true, true), new EventHandler <SubscribedKeyPressEventArgs>(FullScreenHandler)); } Raiser.CallDelegatorBySync(EventConnectionStateChange, new object[] { e }); }