using System; using System.ComponentModel; using System.Drawing; using System.Drawing.Drawing2D; //忽略没有注释警告 #pragma warning disable 1591 namespace MGdu.WinFormUI { [ToolboxItem(true)] public class GMVScrollBar : GMScrollBarBase { #region private var #endregion #region 重写/实现属性 protected override int ScrollBarLength { get { return base.Size.Height; } } protected override int MiddleButtonBeginPositionDot { get { int sizeBtnLen = ShowSideButtons ? base.SideButtonLength : 0; return base.InnerPaddingWidth + sizeBtnLen + base.MiddleButtonOutterSpace1; } } protected override Rectangle SideButton1Rect { get { int width, height; if (ShowSideButtons) { width = base.Size.Width - InnerPaddingWidth * 2; height = base.SideButtonLength; int len = ScrollBarLength - InnerPaddingWidth * 2; if (len < 0) len = 0; if (len < SideButtonLength * 2) height = len / 2; } else { width = height = 0; } return new Rectangle(base.InnerPaddingWidth, base.InnerPaddingWidth, width, height); } } protected override Rectangle SideButton2Rect { get { Rectangle rect1 = SideButton1Rect; return new Rectangle(InnerPaddingWidth, Size.Height - InnerPaddingWidth - rect1.Height, rect1.Width, rect1.Height); } } protected override Rectangle MiddleButtonRect { get { return new Rectangle(InnerPaddingWidth + MiddleButtonOutterSpace2, this.MiddleButtonCurrentPositionDot, Size.Width - InnerPaddingWidth * 2 - MiddleButtonOutterSpace2 * 2, base.MiddleButtonLength); } } protected override Rectangle BeforeMdlBtnRect { get { return new Rectangle(InnerPaddingWidth, MiddleButtonBeginPositionDot, Size.Width - InnerPaddingWidth * 2, MiddleButtonCurrentPositionDot - MiddleButtonBeginPositionDot); } } protected override Rectangle AfterMdlBtnRect { get { int left = InnerPaddingWidth; int top = MiddleButtonRect.Bottom; int width = Size.Width - left * 2; int height = SideButton2Rect.Top - top - MiddleButtonOutterSpace1; if (!ShowSideButtons) height += SideButtonLength; return new Rectangle(left, top, width, height); } } protected override ForePathRatoteDirection SideButton1RotateInfo { get { return ForePathRatoteDirection.Up; } } protected override ForePathRatoteDirection SideButton2RotateInfo { get { return ForePathRatoteDirection.Down; } } protected override bool IsVerticalBar { get { return true; } } #endregion #region 构造函数 public GMVScrollBar() { } #endregion } }