次の方法で共有


ScrollBar.OnScroll メソッド

Scroll イベントを発生させます。

Protected Overridable Sub OnScroll( _
   ByVal se As ScrollEventArgs _)
[C#]
protected virtual void OnScroll(ScrollEventArgsse);
[C++]
protected: virtual void OnScroll(ScrollEventArgs* se);
[JScript]
protected function OnScroll(
   se : ScrollEventArgs);

パラメータ

解説

イベントが発生すると、デリゲートを使用してイベント ハンドラが呼び出されます。詳細については、「 イベントの発生 」を参照してください。

OnScroll メソッドを使用すると、デリゲートを結び付けずに、派生クラスでイベントを処理させることもできます。派生クラスでイベントを処理する場合は、この手法をお勧めします。

継承時の注意: 派生クラスで OnScroll をオーバーライドする場合は、登録されているデリゲートがイベントを受け取ることができるように、基本クラスの OnScroll メソッドを呼び出してください。

使用例

[Visual Basic, C#, C++] 派生クラス VScrollBar を使用する例を次に示します。 Scroll イベントと ValueChanged イベントのイベント ハンドラが作成されます。このコードは、 Label および Button がフォーム上で作成されていること、およびボタンに Click イベントのイベント ハンドラがあることを前提にしています。ボタンがクリックされると、スクロール バーの Value プロパティがコードで調整されます。ラベルには Value プロパティの現在の値とそのプロパティを変更したイベントが表示されます。スクロール値がボタンの Click イベントで変更されると、 ValueChanged イベントだけを発生させます。反対に、スクロール バーが手動でスクロールされると、 ValueChanged イベントの直後に Scroll イベントを発生させます。

 
Private Sub AddMyScrollEventHandlers()
    ' Create and initialize a VScrollBar.
    Dim vScrollBar1 As New VScrollBar()
    
    ' Add event handlers for the OnScroll and OnValueChanged events.
    AddHandler vScrollBar1.Scroll, AddressOf Me.vScrollBar1_Scroll
    AddHandler vScrollBar1.ValueChanged, AddressOf Me.vScrollBar1_ValueChanged
End Sub    

' Create the ValueChanged event handler.
Private Sub vScrollBar1_ValueChanged(sender As Object, e As EventArgs)
    ' Display the new value in the label.
    label1.Text = "vScrollBar Value:(OnValueChanged Event) " & _
        vScrollBar1.Value.ToString()
End Sub    

' Create the Scroll event handler.
Private Sub vScrollBar1_Scroll(sender As Object, e As ScrollEventArgs)
    ' Display the new value in the label.
    label1.Text = "VScrollBar Value:(OnScroll Event) " & _
        e.NewValue.ToString()
End Sub    

Private Sub button1_Click(sender As Object, e As EventArgs)
    ' Add 40 to the Value property if it will not exceed the Maximum value.
    If vScrollBar1.Value + 40 < vScrollBar1.Maximum Then
        vScrollBar1.Value = vScrollBar1.Value + 40
    End If
End Sub


[C#] 
private void AddMyScrollEventHandlers()
 {
    // Create and initialize a VScrollBar.
    VScrollBar vScrollBar1 = new VScrollBar();
 
    // Add event handlers for the OnScroll and OnValueChanged events.
    vScrollBar1.Scroll += new ScrollEventHandler(
       this.vScrollBar1_Scroll);
    vScrollBar1.ValueChanged += new EventHandler(
       this.vScrollBar1_ValueChanged); 
 }
 
 // Create the ValueChanged event handler.
 private void vScrollBar1_ValueChanged(Object sender, 
                                       EventArgs e)
 {
     // Display the new value in the label.
     label1.Text = "vScrollBar Value:(OnValueChanged Event) " + vScrollBar1.Value.ToString();
 }
 
 // Create the Scroll event handler.
 private void vScrollBar1_Scroll(Object sender, 
                                 ScrollEventArgs e)
 {
     // Display the new value in the label.
     label1.Text = "VScrollBar Value:(OnScroll Event) " + e.NewValue.ToString();
 }
 
 private void button1_Click(Object sender, 
                           EventArgs e)
 {
    // Add 40 to the Value property if it will not exceed the Maximum value.
    if (vScrollBar1.Value + 40 < vScrollBar1.Maximum)
    {
        vScrollBar1.Value = vScrollBar1.Value + 40;
    }
 }
 

[C++] 
private:
 void AddMyScrollEventHandlers()
 {
    // Create and initialize a VScrollBar.
    VScrollBar* vScrollBar1 = new VScrollBar();
 
    // Add event handlers for the OnScroll and OnValueChanged events.
    vScrollBar1->Scroll += new ScrollEventHandler(this, 
       &Form1::vScrollBar1_Scroll);
    vScrollBar1->ValueChanged += new EventHandler(this, 
       &Form1::vScrollBar1_ValueChanged); 
 }
 
 // Create the ValueChanged event handler.
 void vScrollBar1_ValueChanged(Object* /*sender*/, 
                               EventArgs* /*e*/)
 {
     // Display the new value in the label.
     label1->Text = String::Format( S"vScrollBar Value:(OnValueChanged Event) {0}",
         __box(vScrollBar1->Value));
 }
 
 // Create the Scroll event handler.
 void vScrollBar1_Scroll(Object* /*sender*/, 
                         ScrollEventArgs* e)
 {
     // Display the new value in the label.
     label1->Text = String::Format( S"VScrollBar Value:(OnScroll Event) {0}",
         __box(e->NewValue));
 }
 
 void button1_Click(Object* /*sender*/, 
                    EventArgs* /*e*/)
 {
    // Add 40 to the Value property if it will not exceed the Maximum value.
    if (vScrollBar1->Value + 40 < vScrollBar1->Maximum)
    {
        vScrollBar1->Value = vScrollBar1->Value + 40;
    }
 }
 

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

ScrollBar クラス | ScrollBar メンバ | System.Windows.Forms 名前空間 | Scroll | ScrollEventArgs