注意:ここで紹介しているDataGridは、System.Windows.Forms名前空間のDataGrid(Windowsフォーム)です。System.Web.UI.WebControls名前空間のDataGrid(Webフォーム)ではありません。
DataGridのCurrentCellを変更すればその行までスクロールさせることができますが、ここではそうせずにスクロールさせる方法を紹介します。
DataGrid内の指定された行までスクロールするには、DataGridクラスのGridVScrolledメソッドを呼び出せばよいのですが、このメソッドはProtectedメンバのため、直接は呼び出せません。よって、DataGridクラスから派生したクラスを作成して、そこから呼び出すようにします。
使用するには、DataGridの代わりにこのクラスを使うようにします。
注意:新しく作成したクラスを、基のコントロールクラスの代わりに使用するという意味が分からないという方は、こちらをご覧ください。
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
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); } }
注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。