ScrollBarRenderer.DrawHorizontalThumbGrip 方法

定义

以视觉样式在水平滚动框(又称滚动块)上绘制手柄。

C#
public static void DrawHorizontalThumbGrip (System.Drawing.Graphics g, System.Drawing.Rectangle bounds, System.Windows.Forms.VisualStyles.ScrollBarState state);

参数

g
Graphics

用于绘制滚动框手柄的 Graphics

bounds
Rectangle

用于指定滚动框手柄边界的 Rectangle

state
ScrollBarState

ScrollBarState 值之一,指定滚动框手柄的可视状态。

例外

操作系统不支持视觉样式。

  • 或 -

用户在操作系统中禁用视觉样式。

  • 或 -

视觉样式不应用于应用程序窗口的工作区。

示例

下面的代码示例使用 DrawHorizontalThumbGrip 自定义控件 OnPaint 方法中的方法在鼠标指针的位置确定的状态中绘制滚动框手柄。 此代码示例是为类提供的大型示例的 ScrollBarRenderer 一部分。

C#
// Draw the scroll bar in its normal state.
protected override void OnPaint(PaintEventArgs e)
{
    base.OnPaint(e);

    // Visual styles are not enabled.
    if (!ScrollBarRenderer.IsSupported)
    {
        this.Parent.Text = "CustomScrollBar Disabled";
        return;
    }

    this.Parent.Text = "CustomScrollBar Enabled";

    // Draw the scroll bar track.
    ScrollBarRenderer.DrawRightHorizontalTrack(e.Graphics,
        ClientRectangle, ScrollBarState.Normal);

    // Draw the thumb and thumb grip in the current state.
    ScrollBarRenderer.DrawHorizontalThumb(e.Graphics,
        thumbRectangle, thumbState);
    ScrollBarRenderer.DrawHorizontalThumbGrip(e.Graphics,
        thumbRectangle, thumbState);

    // Draw the scroll arrows in the current state.
    ScrollBarRenderer.DrawArrowButton(e.Graphics,
            leftArrowRectangle, leftButtonState);
    ScrollBarRenderer.DrawArrowButton(e.Graphics,
            rightArrowRectangle, rightButtonState);

    // Draw a highlighted rectangle in the left side of the scroll 
    // bar track if the user has clicked between the left arrow 
    // and thumb.
    if (leftBarClicked)
    {
        clickedBarRectangle.X = thumbLeftLimit;
        clickedBarRectangle.Width = thumbRectangle.X - thumbLeftLimit;
        ScrollBarRenderer.DrawLeftHorizontalTrack(e.Graphics,
            clickedBarRectangle, ScrollBarState.Pressed);
    }

    // Draw a highlighted rectangle in the right side of the scroll 
    // bar track if the user has clicked between the right arrow 
    // and thumb.
    else if (rightBarClicked)
    {
        clickedBarRectangle.X =
            thumbRectangle.X + thumbRectangle.Width;
        clickedBarRectangle.Width =
            thumbRightLimitRight - clickedBarRectangle.X;
        ScrollBarRenderer.DrawRightHorizontalTrack(e.Graphics,
            clickedBarRectangle, ScrollBarState.Pressed);
    }
}

注解

使用此方法之前,应验证 IsSupported 属性是否返回 true

适用于

产品 版本
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
Windows Desktop 3.0, 3.1, 5, 6, 7