tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
AxMSHFlexGrid で MouseWheel イベントを実装(VB.NET) ( No.0 )  [親スレッドへ]
日時: 2008/03/08 20:04
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[グリッド関係][マウス][]                                            *
* キーワード:MSHFlexGrid,MSFlexGrid,マウスホイール,スクロール,ホイールマウス     *
***********************************************************************************
記事No : 7038
投稿日 : 2008/02/18(Mon) 20:19
元質問 : よっくん  

VB2005で、AxMshFlexGridを使用しているのですがマウスホイールでスクロールさせようと
してもどうやってもスクロールしません。
-----------------------------------------------------------------------------------
記事No : 7040
投稿日 : 2008/02/18(Mon) 21:52
回答者 : 魔界の仮面弁士  
-----------------------------------------------------------------------------------
> そもそもAxMshFlexGridには MouseWheelイベントがないようで…。
たとえば、このようにして実装できます。

Partial Public Class Form1
    Public Class SampleGrid
        Inherits AxMSHierarchicalFlexGridLib.AxMSHFlexGrid
        Public Shadows Event MouseWheel As MouseEventHandler
        Protected Overrides Sub OnMouseWheel(ByVal e As MouseEventArgs)
            RaiseEvent MouseWheel(Me, e)
            MyBase.OnMouseWheel(e)
        End Sub
    End Class

    Private WithEvents AxMSHFlexGrid1 As SampleGrid
    Private Sub Form1_Load(ByVal sender As System.Object, _
      ByVal e As System.EventArgs) Handles MyBase.Load
        AxMSHFlexGrid1 = New SampleGrid()
        AxMSHFlexGrid1.Dock = DockStyle.Fill
        Controls.Add(AxMSHFlexGrid1)

        FillSampleData(AxMSHFlexGrid1)
    End Sub

    Private Sub AxMSHFlexGrid1_MouseWheel(ByVal sender As Object, _
      ByVal e As MouseEventArgs) Handles AxMSHFlexGrid1.MouseWheel
        Dim row As Integer = AxMSHFlexGrid1.TopRow - _
            (e.Delta \ SystemInformation.MouseWheelScrollDelta)
        If row < AxMSHFlexGrid1.FixedRows Then
            row = AxMSHFlexGrid1.FixedRows
        ElseIf row > AxMSHFlexGrid1.Rows - 1 Then
            row = AxMSHFlexGrid1.Rows - 1
        End If
        AxMSHFlexGrid1.TopRow = row
    End Sub

    Private Shared Sub FillSampleData( _
      ByVal grid As AxMSHierarchicalFlexGridLib.AxMSHFlexGrid)
        With grid
            .Rows = 200
            '.Cols = 20
            .set_Cols(20)
            Dim Cells As New System.Text.StringBuilder()
            For row As Integer = 0 To 199
                For col As Integer = 0 To 19
                    Cells.Append(String.Format("{0,3}-{1,3}", row, col))
                    Cells.Append(vbTab)
                Next
                Cells.AppendLine()
            Next
            .Row = 0
            .Col = 0
            .RowSel = 199
            .ColSel = 19
            .Clip = Cells.ToString()
            .RowSel = 0
            .ColSel = 0
        End With
    End Sub
End Class



 [スレッド一覧へ] [親スレッドへ]