/// <summary>
        /// Called when the game window's mouse is released.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="mouseArgs">The <see cref="MouseButtonEventArgs"/> instance containing the event data.</param>
        protected void OnGameWinMouseUp(object sender, System.Windows.Forms.MouseEventArgs mouseEventArgs)
        {
            if (ButtonValueChanged != null)
            {
                ButtonDescription btnDesc;
                switch (mouseEventArgs.Button)
                {
                case System.Windows.Forms.MouseButtons.Left:
                    btnDesc = _btnLeftDesc.ButtonDesc;
                    break;

                case System.Windows.Forms.MouseButtons.Middle:
                    btnDesc = _btnMiddleDesc.ButtonDesc;
                    break;

                case System.Windows.Forms.MouseButtons.Right:
                    btnDesc = _btnRightDesc.ButtonDesc;
                    break;

                default:
                    return;
                }

                ButtonValueChanged(this, new ButtonValueChangedArgs
                {
                    Pressed = false,
                    Button  = btnDesc
                });
            }
        }
 private void OnMouseWheel(object sender, System.Windows.Forms.MouseEventArgs e)
 {
     if (AxisValueChanged != null)
     {
         _currentWheel += e.Delta;
         AxisValueChanged(this, new AxisValueChangedArgs
         {
             Axis  = _wheelAxisDescription.AxisDesc,
             Value = _currentWheel,
         });
     }
 }