Freigeben über


ScrollBar-Klasse

Implementiert die Basisfunktionen eines Bildlaufleisten-Steuerelements.

Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)

Syntax

'Declaration
<ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)> _
<ComVisibleAttribute(True)> _
Public MustInherit Class ScrollBar
    Inherits Control
'Usage
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

Hinweise

Normalerweise wird diese Klasse nicht direkt von der ScrollBar-Klasse vererbt. Vererben Sie zum Erstellen einer eigenen Bildlaufleisten-Klasse die VScrollBar-Klasse oder die HScrollBar-Klasse.

Legen Sie zum Anpassen des Wertebereichs des Bildlaufleisten-Steuerelements die Minimum-Eigenschaft und die Maximum-Eigenschaft fest. Legen Sie zum Anpassen des Abstands für die Verschiebung des Bildlauffelds die SmallChange-Eigenschaft und die LargeChange-Eigenschaft fest. Legen Sie bei der ersten Anzeige des Steuerelements die Value-Eigenschaft fest, um den Anfangspunkt des Bildlauffelds anzupassen.

Hinweis

Das Bildlauffeld wird auch als Ziehpunkt bezeichnet.

Beispiel

Im folgenden Codebeispiel werden einem PictureBox-Steuerelement horizontale und vertikale Bildlaufleisten hinzugefügt, und für das DoubleClick-Ereignis des Steuerelements wird ein Image in das Bildfeld geladen. Sie können jederzeit auf das Bildfeld doppelklicken und ein neues Bild laden. Wenn das Bild größer als das Steuerelement ist, werden die Bildlaufleisten angezeigt, sodass Sie einen Bildlauf durchführen können, um den verbleibenden Teil des Bildes anzuzeigen. In diesem Beispiel wird davon ausgegangen, dass in einem Form eine PictureBox erstellt wurde, an deren Rand eine VScrollBar und eine HScrollBar angedockt sind. Außerdem wird davon ausgegangen, dass ein Verweis auf den System.Drawing-Namespace hinzugefügt wurde. Dabei muss die HandleScroll-Methode als Delegat des Scroll-Ereignishandlers für die VScrollBar und die HScrollBar festgelegt sein. Zusätzlichen Code für die Erweiterung dieses Beispiels finden Sie unter den Membern LargeChange, SmallChange, Maximum, Minimum und Value. Möglicherweise möchten Sie die Eigenschaften der Bildlaufleiste entsprechend den Eigenschaften des übergeordneten Steuerelements festlegen. So könnten Sie dem Beispiel eine Methode hinzufügen, die den Maximum-Wert gleich der Height oder Width des Image festlegt, das der PictureBox zugewiesen ist. Legen Sie den LargeChange-Wert gleich der Höhe oder Breite der PictureBox (abzüglich der Höhe bzw. Breite der Bildlaufleiste) fest. Dies verhindert einen Bildlauf über den Rand des Bildes hinaus. Der LargeChange-Wert verschiebt den sichtbaren Bereich so nur um den Betrag des im Bildfeld angezeigten Bereichs.

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
   
} 

Vererbungshierarchie

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

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

ScrollBar-Member
System.Windows.Forms-Namespace
VScrollBar
HScrollBar-Klasse