ScrollBar 类

实现滚动条控件的基本功能。

**命名空间:**System.Windows.Forms
**程序集:**System.Windows.Forms(在 system.windows.forms.dll 中)

语法

声明
<ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)> _
<ComVisibleAttribute(True)> _
Public MustInherit Class ScrollBar
    Inherits Control
用法
Dim instance As ScrollBar
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)] 
[ComVisibleAttribute(true)] 
public abstract class ScrollBar : Control
[ClassInterfaceAttribute(ClassInterfaceType::AutoDispatch)] 
[ComVisibleAttribute(true)] 
public ref class ScrollBar abstract : public Control
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) */ 
/** @attribute ComVisibleAttribute(true) */ 
public abstract class ScrollBar extends Control
ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) 
ComVisibleAttribute(true) 
public abstract class ScrollBar extends Control

备注

通常不直接从 ScrollBar 类继承。若要创建自己的滚动条类,请从 VScrollBarHScrollBar 类继承。

若要调整滚动条控件的值范围,请设置 MinimumMaximum 属性。若要调整滚动框移动的距离,请设置 SmallChangeLargeChange 属性。若要调整滚动框的起始点,请在最初显示控件时设置 Value 属性。

提示

滚动框有时又称为滚动块。

示例

下面的代码示例向 PictureBox 控件添加水平和垂直滚动条,并将一个 Image 加载到该控件的 DoubleClick 事件的图片框中。您可在任何时候双击该图片框并加载新图像。如果图像比控件大,则将显示滚动条,以便您可以滚动查看图像的剩余部分。该示例假定已在 Form 上创建了一个 PictureBox(其两边分别停靠有 VScrollBarHScrollBar)。它还假定已添加对 System.Drawing 命名空间的引用。请确保将 HandleScroll 方法同时设置为 VScrollBarHScrollBarScroll 事件处理程序委托。有关可扩展此示例的其他代码,请参见 LargeChangeSmallChangeMaximumMinimumValue 成员。您可考虑基于滚动条的父控件的属性来设置滚动条的属性。例如,您可向该示例添加一种方法,将 Maximum 值设置为等于分配给 PictureBoxImageHeightWidth。将 LargeChange 值设置为等于 PictureBox 的高度或宽度(减去滚动条的高度或宽度)。这可防止用户滚动出图像的边缘,并且 LargeChange 值将只使图像的可查看区域移动与图片框中的显示区域相同的距离。

Imports System
Imports System.Drawing
Imports System.Collections
Imports System.ComponentModel
Imports System.Windows.Forms

Namespace Scrollbar
    Public Class Form1
        Inherits System.Windows.Forms.Form
        Private WithEvents openFileDialog1 As System.Windows.Forms.OpenFileDialog
        Private WithEvents pictureBox1 As System.Windows.Forms.PictureBox
        Private WithEvents vScrollBar1 As System.Windows.Forms.VScrollBar
        Private WithEvents hScrollBar1 As System.Windows.Forms.HScrollBar

        Public Sub New()
            InitializeComponent()
        End Sub

        Private Sub InitializeComponent()
            Me.openFileDialog1 = New System.Windows.Forms.OpenFileDialog()
            Me.pictureBox1 = New System.Windows.Forms.PictureBox()
            Me.vScrollBar1 = New System.Windows.Forms.VScrollBar()
            Me.hScrollBar1 = New System.Windows.Forms.HScrollBar()
            Me.pictureBox1.SuspendLayout()
            Me.SuspendLayout()
            Me.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
            Me.pictureBox1.Controls.AddRange(New System.Windows.Forms.Control() _
            {Me.vScrollBar1, Me.hScrollBar1})
            Me.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill
            Me.pictureBox1.Size = New System.Drawing.Size(440, 349)
            Me.vScrollBar1.Dock = System.Windows.Forms.DockStyle.Right
            Me.vScrollBar1.Location = New System.Drawing.Point(422, 0)
            Me.vScrollBar1.Size = New System.Drawing.Size(16, 331)
            Me.vScrollBar1.Visible = False
            Me.hScrollBar1.Dock = System.Windows.Forms.DockStyle.Bottom
            Me.hScrollBar1.Location = New System.Drawing.Point(0, 331)
            Me.hScrollBar1.Size = New System.Drawing.Size(438, 16)
            Me.hScrollBar1.Visible = False
            Me.ClientSize = New System.Drawing.Size(440, 349)
            Me.Controls.AddRange(New System.Windows.Forms.Control() _
                {Me.pictureBox1})
            Me.Text = "Form1"
            Me.pictureBox1.ResumeLayout(False)
            Me.ResumeLayout(False)
        End Sub

        <STAThread()> Shared Sub Main()
            Application.Run(New Form1())
        End Sub

        Private Sub pictureBox1_DoubleClick(ByVal sender As [Object], _
            ByVal e As EventArgs) _
          Handles pictureBox1.DoubleClick

            ' Open the dialog box so the user can select a new image.
            If openFileDialog1.ShowDialog() <> DialogResult.Cancel Then

                ' Display the image in the PictureBox.
                pictureBox1.Image = Image.FromFile(openFileDialog1.FileName)
                Me.DisplayScrollBars()
                Me.SetScrollBarValues()
            End If
        End Sub

        Private Sub Form1_Resize(ByVal sender As Object, _
            ByVal e As System.EventArgs) Handles MyBase.Resize

            ' If the PictureBox has an image, see if it needs
            ' scrollbars and refresh the image. 
            If Not (pictureBox1.Image Is Nothing) Then
                Me.DisplayScrollBars()
                Me.SetScrollBarValues()
                Me.Refresh()
            End If
        End Sub

        Public Sub DisplayScrollBars()

            ' If the image is wider than the PictureBox, show the HScrollBar.
            If pictureBox1.Width > pictureBox1.Image.Width - _
              Me.vScrollBar1.Width Then
                hScrollBar1.Visible = False
            Else
                hScrollBar1.Visible = True
            End If

            ' If the image is taller than the PictureBox, show the VScrollBar.
            If pictureBox1.Height > pictureBox1.Image.Height - _
              Me.hScrollBar1.Height Then
                vScrollBar1.Visible = False
            Else
                vScrollBar1.Visible = True
            End If
        End Sub

        Private Sub HandleScroll(ByVal sender As [Object], _
            ByVal se As ScrollEventArgs) _
          Handles vScrollBar1.Scroll, hScrollBar1.Scroll

            ' Create a graphics object and draw a portion 
            ' of the image in the PictureBox. 
            Dim g As Graphics = pictureBox1.CreateGraphics()

            g.DrawImage(pictureBox1.Image, _
                New Rectangle(0, 0, pictureBox1.Right - vScrollBar1.Width, _
                pictureBox1.Bottom - hScrollBar1.Height), _
                New Rectangle(hScrollBar1.Value, vScrollBar1.Value, _
                pictureBox1.Right - vScrollBar1.Width, _
                pictureBox1.Bottom - hScrollBar1.Height), GraphicsUnit.Pixel)
            pictureBox1.Update()
        End Sub

        Public Sub SetScrollBarValues()

            ' Set the Maximum, Minimum, LargeChange and SmallChange properties.
            Me.vScrollBar1.Minimum = 0
            Me.hScrollBar1.Minimum = 0

            ' If the offset does not make the Maximum less than zero, set its value.
            If Me.pictureBox1.Image.Size.Width - _
                pictureBox1.ClientSize.Width > 0 Then
                Me.hScrollBar1.Maximum = Me.pictureBox1.Image.Size.Width - _
                  pictureBox1.ClientSize.Width
            End If

            ' If the VScrollBar is visible, adjust the Maximum of the 
            ' HSCrollBar to account for the width of the VScrollBar.
            If Me.vScrollBar1.Visible Then
                Me.hScrollBar1.Maximum += Me.vScrollBar1.Width
            End If
            Me.hScrollBar1.LargeChange = CType(Me.hScrollBar1.Maximum / 10, Integer)
            Me.hScrollBar1.SmallChange = CType(Me.hScrollBar1.Maximum / 20, Integer)

            ' Adjust the Maximum value to make the raw Maximum value 
            ' attainable by user interaction.
            Me.hScrollBar1.Maximum += Me.hScrollBar1.LargeChange

            ' If the offset does not make the Maximum less than zero, 
            ' set its value.
            If Me.pictureBox1.Image.Size.Height - _
                pictureBox1.ClientSize.Height > 0 Then
                Me.vScrollBar1.Maximum = Me.pictureBox1.Image.Size.Height - _
                  pictureBox1.ClientSize.Height
            End If

            ' If the HScrollBar is visible, adjust the Maximum of the 
            ' VSCrollBar to account for the width of the HScrollBar.
            If Me.hScrollBar1.Visible Then
                Me.vScrollBar1.Maximum += Me.hScrollBar1.Height
            End If
            Me.vScrollBar1.LargeChange = CType(Me.vScrollBar1.Maximum / 10, Integer)
            Me.vScrollBar1.SmallChange = CType(Me.vScrollBar1.Maximum / 20, Integer)

            ' Adjust the Maximum value to make the raw Maximum 
            ' value attainable by user interaction.
            Me.vScrollBar1.Maximum += Me.vScrollBar1.LargeChange
        End Sub
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;


namespace Scrollbar
{
    public class Form1 :  Form
   {
      private  OpenFileDialog openFileDialog1;
      private  PictureBox pictureBox1;
      private  VScrollBar vScrollBar1;
      private  HScrollBar hScrollBar1;
    
      public Form1()
      {
         InitializeComponent();
      }
    
      private void InitializeComponent()
      {
         this.openFileDialog1 = new OpenFileDialog();
         this.pictureBox1 = new PictureBox();
         this.vScrollBar1 = new VScrollBar();
         this.hScrollBar1 = new HScrollBar();
         this.pictureBox1.SuspendLayout();
         this.SuspendLayout();
        
         this.pictureBox1.BorderStyle = BorderStyle.FixedSingle;
         this.pictureBox1.Controls.AddRange(
             new Control[] { this.vScrollBar1, this.hScrollBar1});
         this.pictureBox1.Dock = DockStyle.Fill;
         this.pictureBox1.Size = new System.Drawing.Size(440, 349);
         this.pictureBox1.DoubleClick += new EventHandler(this.pictureBox1_DoubleClick);

         this.vScrollBar1.Dock = DockStyle.Right;
         this.vScrollBar1.Location = new System.Drawing.Point(422, 0);
         this.vScrollBar1.Size = new System.Drawing.Size(16, 331);
         this.vScrollBar1.Visible = false;
         this.vScrollBar1.Scroll += 
             new ScrollEventHandler(this.HandleScroll);
         
         this.hScrollBar1.Dock = DockStyle.Bottom;
         this.hScrollBar1.Location = new System.Drawing.Point(0, 331);
         this.hScrollBar1.Size = new System.Drawing.Size(438, 16);
         this.hScrollBar1.Visible = false;
         this.hScrollBar1.Scroll += 
             new ScrollEventHandler(this.HandleScroll);
         
         this.ClientSize = new System.Drawing.Size(440, 349);
         this.Controls.AddRange(new Control[] {this.pictureBox1});
         this.Text = "Form1";
         this.Resize += new System.EventHandler(this.Form1_Resize);
         this.pictureBox1.ResumeLayout(false);
         this.ResumeLayout(false);

      }

      [STAThread]
      static void Main() 
      {
         Application.Run(new Form1());
      }

private void pictureBox1_DoubleClick (Object sender, EventArgs e)
{
   // Open the dialog box so the user can select a new image.
   if(openFileDialog1.ShowDialog() != DialogResult.Cancel)
   {
      // Display the image in the PictureBox.
      pictureBox1.Image = Image.FromFile(openFileDialog1.FileName);
      this.DisplayScrollBars();
      this.SetScrollBarValues();
   }
}
 
private void Form1_Resize (Object sender, EventArgs e)
{
   // If the PictureBox has an image, see if it needs 
   // scrollbars and refresh the image. 
   if(pictureBox1.Image != null)
   {
      this.DisplayScrollBars();
      this.SetScrollBarValues();
      this.Refresh();
   }
}
 
public void DisplayScrollBars()
{
   // If the image is wider than the PictureBox, show the HScrollBar.
   if (pictureBox1.Width > pictureBox1.Image.Width - this.vScrollBar1.Width)
   {
      hScrollBar1.Visible = false;
   }
   else
   {
      hScrollBar1.Visible = true;
   }
 
   // If the image is taller than the PictureBox, show the VScrollBar.
   if (pictureBox1.Height > 
       pictureBox1.Image.Height - this.hScrollBar1.Height)
   {
      vScrollBar1.Visible = false;
   }
   else
   {
      vScrollBar1.Visible = true;
   }
}
 
private void HandleScroll(Object sender, ScrollEventArgs se)
{
   /* Create a graphics object and draw a portion 
      of the image in the PictureBox. */
   Graphics g = pictureBox1.CreateGraphics();
   
   g.DrawImage(pictureBox1.Image, 
     new Rectangle(0, 0, pictureBox1.Right - vScrollBar1.Width, 
     pictureBox1.Bottom - hScrollBar1.Height), 
     new Rectangle(hScrollBar1.Value, vScrollBar1.Value, 
     pictureBox1.Right - vScrollBar1.Width,
     pictureBox1.Bottom - hScrollBar1.Height), 
     GraphicsUnit.Pixel);

     pictureBox1.Update();
}

public void SetScrollBarValues() 
{
   // Set the Maximum, Minimum, LargeChange and SmallChange properties.
   this.vScrollBar1.Minimum = 0;
   this.hScrollBar1.Minimum = 0;

   // If the offset does not make the Maximum less than zero, set its value. 
   if( (this.pictureBox1.Image.Size.Width - pictureBox1.ClientSize.Width) > 0)
   {
      this.hScrollBar1.Maximum = 
          this.pictureBox1.Image.Size.Width - pictureBox1.ClientSize.Width;
   }
   // If the VScrollBar is visible, adjust the Maximum of the 
   // HSCrollBar to account for the width of the VScrollBar.  
   if(this.vScrollBar1.Visible)
   {
      this.hScrollBar1.Maximum += this.vScrollBar1.Width;
   }
   this.hScrollBar1.LargeChange = this.hScrollBar1.Maximum / 10;
   this.hScrollBar1.SmallChange = this.hScrollBar1.Maximum / 20;

   // Adjust the Maximum value to make the raw Maximum value 
   // attainable by user interaction.
   this.hScrollBar1.Maximum += this.hScrollBar1.LargeChange;
     
   // If the offset does not make the Maximum less than zero, set its value.    
   if( (this.pictureBox1.Image.Size.Height - pictureBox1.ClientSize.Height) > 0)
   {
      this.vScrollBar1.Maximum = 
          this.pictureBox1.Image.Size.Height - pictureBox1.ClientSize.Height;
   }

   // If the HScrollBar is visible, adjust the Maximum of the 
   // VSCrollBar to account for the width of the HScrollBar.
   if(this.hScrollBar1.Visible)
   {
      this.vScrollBar1.Maximum += this.hScrollBar1.Height;
   }
   this.vScrollBar1.LargeChange = this.vScrollBar1.Maximum / 10;
   this.vScrollBar1.SmallChange = this.vScrollBar1.Maximum / 20;
   
    // Adjust the Maximum value to make the raw Maximum value 
   // attainable by user interaction.
   this.vScrollBar1.Maximum += this.vScrollBar1.LargeChange;
   }

  }
}
#using <system.dll>
#using <system.data.dll>
#using <system.drawing.dll>
#using <system.windows.forms.dll>
#using <system.xml.dll>

using namespace System;
using namespace System::Data;
using namespace System::Drawing;
using namespace System::ComponentModel;
using namespace System::Windows::Forms;

#define null 0L
public ref class Form1: public Form
{
protected:
   DataGrid^ dataGrid1;
   DataSet^ dataSet1;
   OpenFileDialog^ openFileDialog1;
   PictureBox^ pictureBox1;
   ScrollBar^ hScrollBar1;
   ScrollBar^ vScrollBar1;

private:

  
   void pictureBox1_DoubleClick( Object^ sender, EventArgs^ e )
   {
      // Open the dialog box so the user can select a new image.
      if ( openFileDialog1->ShowDialog() != ::DialogResult::Cancel )
      {
         // Display the image in the PictureBox.
         pictureBox1->Image = System::Drawing::Image::FromFile( openFileDialog1->FileName );
         this->DisplayScrollBars();
         this->SetScrollBarValues();
      }
   }

   void Form1_Resize( Object^ sender, EventArgs^ e )
   {
      /* If the PictureBox has an image, see if it needs
             scrollbars and refresh the image. */
      if ( pictureBox1->Image != nullptr )
      {
         this->SetScrollBarValues();
         this->DisplayScrollBars();
         this->Refresh();
      }
   }

   void DisplayScrollBars()
   {
      // If the image is wider than the PictureBox, show the HScrollBar.
      if ( pictureBox1->Width > pictureBox1->Image->Width - this->vScrollBar1->Width )
      {
         hScrollBar1->Visible = false;
      }
      else
      {
         hScrollBar1->Visible = true;
      }

      // If the image is taller than the PictureBox, show the VScrollBar.
      if ( pictureBox1->Height > pictureBox1->Image->Height - this->hScrollBar1->Height )
      {
         vScrollBar1->Visible = false;
      }
      else
      {
         vScrollBar1->Visible = true;
      }
   }

   void HandleScroll( Object^ sender, ScrollEventArgs^ se )
   {
      /* Create a graphics object and draw a portion
             of the image in the PictureBox. */
      Graphics^ g = pictureBox1->CreateGraphics();
      g->DrawImage( pictureBox1->Image, Rectangle(0,0,pictureBox1->Right - vScrollBar1->Width,pictureBox1->Bottom - hScrollBar1->Height), Rectangle(hScrollBar1->Value,vScrollBar1->Value,pictureBox1->Right - vScrollBar1->Width,pictureBox1->Bottom - hScrollBar1->Height), GraphicsUnit::Pixel );
   }

public:
   void SetScrollBarValues()
   {
      // Set the Maximum, Minimum, LargeChange and SmallChange properties.
      this->vScrollBar1->Minimum = 0;
      this->hScrollBar1->Minimum = 0;

      // If the offset does not make the Maximum less than zero, set its value.
      if ( (this->pictureBox1->Image->Size.Width - pictureBox1->ClientSize.Width) > 0 )
      {
         this->hScrollBar1->Maximum = this->pictureBox1->Image->Size.Width - pictureBox1->ClientSize.Width;
      }

      /* If the VScrollBar is visible, adjust the Maximum of the
                    HSCrollBar to account for the width of the VScrollBar. */
      if ( this->vScrollBar1->Visible )
      {
         this->hScrollBar1->Maximum += this->vScrollBar1->Width;
      }

      this->hScrollBar1->LargeChange = this->hScrollBar1->Maximum / 10;
      this->hScrollBar1->SmallChange = this->hScrollBar1->Maximum / 20;

      // Adjust the Maximum value to make the raw Maximum value attainable by user interaction.
      this->hScrollBar1->Maximum += this->hScrollBar1->LargeChange;

      // If the offset does not make the Maximum less than zero, set its value.
      if ( (this->pictureBox1->Image->Size.Height - pictureBox1->ClientSize.Height) > 0 )
      {
         this->vScrollBar1->Maximum = this->pictureBox1->Image->Size.Height - pictureBox1->ClientSize.Height;
      }

      /* If the HScrollBar is visible, adjust the Maximum of the
                   VSCrollBar to account for the width of the HScrollBar.*/
      if ( this->hScrollBar1->Visible )
      {
         this->vScrollBar1->Maximum += this->hScrollBar1->Height;
      }

      this->vScrollBar1->LargeChange = this->vScrollBar1->Maximum / 10;
      this->vScrollBar1->SmallChange = this->vScrollBar1->Maximum / 20;
      
      // Adjust the Maximum value to make the raw Maximum value attainable by user interaction.
      this->vScrollBar1->Maximum += this->vScrollBar1->LargeChange;
   }
};
package Scrollbar;

import System.*;
import System.Drawing.*;
import System.Collections.*;
import System.ComponentModel.*;
import System.Windows.Forms.*;

public class Form1 extends Form
{
    private OpenFileDialog openFileDialog1;
    private PictureBox pictureBox1;
    private VScrollBar vScrollBar1;
    private HScrollBar hScrollBar1;
  
    public Form1()
    {
        InitializeComponent();
    } 

    private void InitializeComponent()
    {
        this.openFileDialog1 = new OpenFileDialog();
        this.pictureBox1 = new PictureBox();
        this.vScrollBar1 = new VScrollBar();
        this.hScrollBar1 = new HScrollBar();
        this.pictureBox1.SuspendLayout();
        this.SuspendLayout();
        this.pictureBox1.set_BorderStyle(
            BorderStyle.FixedSingle);
        this.pictureBox1.get_Controls().AddRange(
            new Control[] { 
            this.vScrollBar1, this.hScrollBar1 });
        this.pictureBox1.set_Dock(DockStyle.Fill);
        this.pictureBox1.set_Size(new System.Drawing.Size(440, 349));
        this.pictureBox1.set_TabIndex(0);
        this.pictureBox1.set_TabStop(false);
        this.pictureBox1.add_DoubleClick(
            new System.EventHandler(this.pictureBox1_DoubleClick));
        this.vScrollBar1.set_Dock(DockStyle.Right);
        this.vScrollBar1.set_Location(new System.Drawing.Point(422, 0));
        this.vScrollBar1.set_Size(new System.Drawing.Size(16, 331));
        this.vScrollBar1.set_Visible(false);
        this.vScrollBar1.add_Scroll(
            new ScrollEventHandler(this.HandleScroll));
        this.hScrollBar1.set_Dock(DockStyle.Bottom);
        this.hScrollBar1.set_Location(new System.Drawing.Point(0, 331));
        this.hScrollBar1.set_Size(new System.Drawing.Size(438, 16));
        this.hScrollBar1.set_Visible(false);
        this.hScrollBar1.add_Scroll(
            new ScrollEventHandler(this.HandleScroll));
        this.set_ClientSize(new System.Drawing.Size(440, 349));
        this.get_Controls().AddRange(
            new Control[] { this.pictureBox1 });
        this.set_Text("Form1");
        this.add_Resize(new System.EventHandler(this.Form1_Resize));
        this.pictureBox1.ResumeLayout(false);
        this.ResumeLayout(false);
    }
    /** @attribute STAThread()
     */
    public static void main(String[] args)
    {
        Application.Run(new Form1());
    } 

    private void pictureBox1_DoubleClick(Object sender, EventArgs e)
    {
        // Open the dialog box so the user can select a new image.
        if (openFileDialog1.ShowDialog() != get_DialogResult().Cancel) {
    
            // Display the image in the PictureBox.
            pictureBox1.set_Image(Image.FromFile(
                openFileDialog1.get_FileName()));
            this.DisplayScrollBars();
            this.SetScrollBarValues();
        }
    } 

    protected void Form1_Resize(Object sender, EventArgs e)
    {
        /* If the PictureBox has an image, see if it needs 
           scrollbars and refresh the image. 
         */
        if (pictureBox1.get_Image() != null) {
            this.DisplayScrollBars();
            this.SetScrollBarValues();
            this.Refresh();
        }
    } 

    public void DisplayScrollBars()
    {
        // If the image is wider than the PictureBox, show the HScrollBar.
        if (pictureBox1.get_Width() > pictureBox1.get_Image().get_Width() 
            - this.vScrollBar1.get_Width()) {
                hScrollBar1.set_Visible(false);
        }
        else {
            hScrollBar1.set_Visible(true);
        }

        // If the image is taller than the PictureBox, show the VScrollBar.
        if (pictureBox1.get_Height() > pictureBox1.get_Image().get_Height() 
            - this.hScrollBar1.get_Height()) {
                vScrollBar1.set_Visible(false);
        }
        else {
            vScrollBar1.set_Visible(true);
        }
    } 

    private void HandleScroll(Object sender, ScrollEventArgs se)
    {
        /* Create a graphics object and draw a portion 
           of the image in the PictureBox. 
         */
        Graphics g = pictureBox1.CreateGraphics();

        g.DrawImage(pictureBox1.get_Image(), 
            new Rectangle(0, 0, 
            pictureBox1.get_Right() - vScrollBar1.get_Width(), 
            pictureBox1.get_Bottom() - hScrollBar1.get_Height()), 
            new Rectangle(hScrollBar1.get_Value(), 
            vScrollBar1.get_Value(), pictureBox1.get_Right() 
            - vScrollBar1.get_Width(), pictureBox1.get_Bottom() 
            - hScrollBar1.get_Height()), GraphicsUnit.Pixel);
        pictureBox1.Update();
    }

    public void SetScrollBarValues()
    {
        // Set the Maximum, Minimum, LargeChange and SmallChange properties.
        this.vScrollBar1.set_Minimum(0);
        this.hScrollBar1.set_Minimum(0);

        // If the offset does not make the Maximum less than zero, 
        // set its value. 
        if (this.pictureBox1.get_Image().get_Size().get_Width() 
            - pictureBox1.get_ClientSize().get_Width() > 0) {
                this.hScrollBar1.set_Maximum(
                    this.pictureBox1.get_Image().get_Size().get_Width() 
                    - pictureBox1.get_ClientSize().get_Width());
        }

        /* If the VScrollBar is visible, adjust the Maximum of the 
           HSCrollBar to account for the width of the VScrollBar. 
         */
        if (this.vScrollBar1.get_Visible()) {
            this.hScrollBar1.set_Maximum(this.hScrollBar1.get_Maximum() 
                + this.vScrollBar1.get_Width());
        }

        this.hScrollBar1.set_LargeChange(this.hScrollBar1.get_Maximum() / 10);
        this.hScrollBar1.set_SmallChange(this.hScrollBar1.get_Maximum() / 20);

        // Adjust the Maximum value to make the raw Maximum value attainable 
        // by user interaction.
        this.hScrollBar1.set_Maximum(this.hScrollBar1.get_Maximum() 
            + this.hScrollBar1.get_LargeChange());

        // If the offset does not make the Maximum less than zero, 
        // set its value.    
        if (this.pictureBox1.get_Image().get_Size().get_Height() 
            - pictureBox1.get_ClientSize().get_Height() > 0) {
                this.vScrollBar1.set_Maximum(
                    this.pictureBox1.get_Image().get_Size().get_Height() 
                    - pictureBox1.get_ClientSize().get_Height());
        }

        /* If the HScrollBar is visible, adjust the Maximum of the 
           VSCrollBar to account for the width of the HScrollBar.
         */
        if (this.hScrollBar1.get_Visible()) {
            this.vScrollBar1.set_Maximum(this.vScrollBar1.get_Maximum() 
                + this.hScrollBar1.get_Height());
        }

        this.vScrollBar1.set_LargeChange(this.vScrollBar1.get_Maximum() / 10);
        this.vScrollBar1.set_SmallChange(this.vScrollBar1.get_Maximum() / 20);

        // Adjust the Maximum value to make the raw Maximum value attainable 
        // by user interaction.
        this.vScrollBar1.set_Maximum(this.vScrollBar1.get_Maximum() 
            + this.vScrollBar1.get_LargeChange());
    } //SetScrollBarValues
   
} 

继承层次结构

System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.Windows.Forms.Control
        System.Windows.Forms.ScrollBar
           System.Windows.Forms.HScrollBar
           System.Windows.Forms.VScrollBar

线程安全

此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

.NET Compact Framework

受以下版本支持:2.0、1.0

请参见

参考

ScrollBar 成员
System.Windows.Forms 命名空间
VScrollBar
HScrollBar 类