private void OnNewConnection(Control control1, Point p1, Control control2, Point p2) { Cursor = Cursors.Default; foreach (var c in Controls.OfType <Control>()) { c.Cursor = Cursor; } IConfigurable ws1 = control1 as IConfigurable; IConfigurable ws2 = control2 as IConfigurable; if (ws1 == null || ws2 == null) { return; } int port1 = ws1.GetPortIDByPoint(p1); int port2 = ws2.GetPortIDByPoint(p2); if (port1 < 0 || port2 < 0) { return; } NewConnectionCreated?.Invoke((Control)ws1, port1, (Control)ws2, port2); }