public delegate void ConnectionStateChangedDelegate(Object sender, ConnectionStateChangedEventArgs e); public class ConnectionStateChangedEventArgs : EventArgs { public readonly bool IsConnected; public readonly string Message; public ConnectionStateChangedEventArgs(bool isConnected, string message) { this.IsConnected = isConnected; this.Message = message; } } /// <summary> /// Connection State Changed Event /// </summary> public event ConnectionStateChangedDelegate ConnectionStateChanged; /// <summary> /// Raises the Connection State Changed Event /// </summary> private void OnConnectionStateChanged(bool connectState) { this._connected = connectState; string message = "Disconnected!"; ConnectionStateChangedDelegate csc = this.ConnectionStateChanged; if (csc != null) { if (this._connected) message = "Connected on " + gps.PortName; // Raise the event this.ConnectionStateChanged(this, new ConnectionStateChangedEventArgs(this._connected, message)); } }Tim