ScrollBarRenderer::DrawArrowButton Method (Graphics^, Rectangle, ScrollBarArrowButtonState)
Draws a scroll arrow with visual styles.
Assembly: System.Windows.Forms (in System.Windows.Forms.dll)
public: static void DrawArrowButton( Graphics^ g, Rectangle bounds, ScrollBarArrowButtonState state )
Parameters
- g
-
Type:
System.Drawing::Graphics^
The Graphics used to draw the scroll arrow.
- bounds
-
Type:
System.Drawing::Rectangle
The Rectangle that specifies the bounds of the scroll arrow.
- state
-
Type:
System.Windows.Forms.VisualStyles::ScrollBarArrowButtonState
One of the ScrollBarArrowButtonState values that specifies the visual state of the scroll arrow.
| Exception | Condition |
|---|---|
| InvalidOperationException | The operating system does not support visual styles. -or- Visual styles are disabled by the user in the operating system. -or- Visual styles are not applied to the client area of application windows. |
Before using this method, you should verify that the IsSupported property returns true.
The following code example uses the DrawArrowButton method in a custom control's OnPaint method to draw a scroll arrow in the state determined by the location of the mouse pointer. This code example is part of a larger example provided for the ScrollBarRenderer class.
// Draw the scroll bar in its normal state.
protected:
virtual void OnPaint(PaintEventArgs^ e) override
{
__super::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);
}
}
Available since 2.0