DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

DOBON.NET

DataGrid内の指定された行までスクロールする

DataGridのCurrentCellを変更すればその行までスクロールさせることができますが、ここではそうせずにスクロールさせる方法を紹介します。

DataGrid内の指定された行までスクロールするには、DataGridクラスのGridVScrolledメソッドを呼び出せばよいのですが、このメソッドはProtectedメンバのため、直接は呼び出せません。よって、DataGridクラスから派生したクラスを作成して、そこから呼び出すようにします。

使用するには、DataGridの代わりにこのクラスを使うようにします。

注意:新しく作成したクラスを、基のコントロールクラスの代わりに使用するという意味が分からないという方は、こちらをご覧ください。

[VB.NET]
Imports System
Imports System.Windows.Forms

Public Class MyDataGrid
    Inherits DataGrid

    ''' <summary>
    ''' DataGridの最初に表示される行を設定する
    ''' </summary>
    ''' <param name="rowNum">DataGridの最初に表示される行の番号</param>
    Public Sub SetTopRow(ByVal rowNum As Integer)
        Dim args As New ScrollEventArgs( _
            ScrollEventType.LargeIncrement, rowNum)
        GridVScrolled(Me, args)
    End Sub
End Class
[C#]
using System;
using System.Windows.Forms;

public class MyDataGrid : DataGrid
{
    /// <summary>
    /// DataGridの最初に表示される行を設定する
    /// </summary>
    /// <param name="rowNum">DataGridの最初に表示される行の番号</param>
    public void SetTopRow(int rowNum)
    {
        ScrollEventArgs args = 
            new ScrollEventArgs(ScrollEventType.LargeIncrement, rowNum);
        GridVScrolled(this, args);
    }
}