private void Track(TrackingType trackingType) { TrackingSettings trackingSettings; TrackerChangedEventArgs ea; frmTrackBounds selectBoundsView; switch (trackingType) { case TrackingType.None: case TrackingType.Full: trackingSettings = new TrackingSettings() { Type = trackingType, }; ea = new TrackerChangedEventArgs(trackingSettings); this.OnTrackerChanged(ea); break; case TrackingType.Fixed: case TrackingType.MouseCursor: bool trackingMouseCursor = trackingType == TrackingType.MouseCursor; selectBoundsView = new frmTrackBounds(); this.isSelectingTracker = true; selectBoundsView.IsFixedAroundCursor = trackingMouseCursor; if (this.trackingSettings.Type == trackingType) { selectBoundsView.Bounds = this.TrackingSettings.Bounds; } else { Rectangle screenBounds = System.Windows.Forms.Screen.PrimaryScreen.Bounds; selectBoundsView.Bounds = new Rectangle( screenBounds.Width / 4, screenBounds.Height / 4, screenBounds.Width / 2, screenBounds.Height / 2); } if (selectBoundsView.ShowDialog()) { this.isSelectingTracker = false; trackingSettings = new TrackingSettings() { Bounds = selectBoundsView.Bounds, Type = trackingType, }; ea = new TrackerChangedEventArgs(trackingSettings); this.OnTrackerChanged(ea); } break; case TrackingType.Window: break; } }