private void UpdatePanelFromNumeric()
 {
     if (!_isProgrammicallyChangingNumerics)
     {
         TargetPanel.Refresh();
     }
 }
 private void TargetPanel_MouseUp(object sender, MouseEventArgs e)
 {
     if (e.Button == MouseButtons.Left)
     {
         _isDragging = false;
         TargetPanel.Refresh();
     }
 }
 private void TargetPanel_MouseDown(object sender, MouseEventArgs e)
 {
     if (e.Button == MouseButtons.Left && !ReadOnly)
     {
         _isDragging = true;
         X           = e.X;
         Y           = e.Y;
         TargetPanel.Refresh();
     }
 }
 private void TargetPanel_MouseMove(object sender, MouseEventArgs e)
 {
     if (_isDragging && !ReadOnly)
     {
         _isProgrammicallyChangingNumerics = true;
         X = e.X;
         Y = e.Y;
         _isProgrammicallyChangingNumerics = false;
         TargetPanel.Refresh();
     }
 }
 public void UpdateValues()
 {
     TargetPanel.Refresh();
 }