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

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

注意:ここで紹介しているDataGridは、System.Windows.Forms名前空間のDataGrid(Windowsフォーム)です。System.Web.UI.WebControls名前空間のDataGrid(Webフォーム)ではありません。

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);
    }
}

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • .NET Tipsをご利用いただく際は、注意事項をお守りください。