人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

.net datagrid 選擇多行

.net datagrid 選擇多行

更新時間:2022-08-31 文章作者:未知 信息來源:網絡 閱讀次數:

  功能:點擊datagrid并且按住鍵盤上的ctrl或shift可選擇多行

Public Class MyDataGridCLASS
    Inherits DataGrid
    Private m As New ArrayList

    Public ReadOnly Property MultiSelectedIndex() As Integer()
        Get
            Return m.ToArray(GetType(Integer))
        End Get
    End Property

    Protected Overrides Sub OnMouseDown(ByVal e As System.Windows.Forms.MouseEventArgs)
        Debug.WriteLine("DataGrid has hit")
        Dim posdg As Point = New Point(e.X, e.Y)
        Dim hitDG As DataGrid.HitTestInfo = HitTest(posdg)
        If HitDataGrid(hitDG) Then
            MyBase.OnMouseDown(e)
            Debug.WriteLine("Mousedown has gogogo.....")
        End If
    End Sub

    Private Function HitDataGrid(ByVal Hit As DataGrid.HitTestInfo) As Boolean
        Try
            Select Case Me.ModifierKeys
                Case Keys.Control
                    If Hit.Row > -1 Then
                        If m.IndexOf(Hit.Row) > -1 Then
                            m.Remove(Hit.Row)
                            Me.UnSelect(Hit.Row)
                        Else
                            m.Add(Hit.Row)
                            Me.Select(Hit.Row)
                        End If
                    End If
                    Return False
                Case Keys.Shift
                    If Hit.Row > -1 Then
                        For Each IndexOld As Integer In m
                            Me.UnSelect(IndexOld)
                        Next
                        m.Clear()
                        Dim i, intStep As Integer
                        If Hit.Row > Me.CurrentRowIndex Then
                            intStep = 1
                        Else
                            intStep = -1
                        End If
                        For i = Me.CurrentRowIndex To Hit.Row Step intStep
                            m.Add(i)
                            Me.Select(i)
                        Next
                    End If
                    Return False
                Case Else
                    For Each index As Integer In m
                        Me.UnSelect(index)
                    Next
                    m.Clear()
                    If Hit.Type = DataGrid.HitTestType.RowHeader Then
                        m.Add(Hit.Row)
                    End If
                    Return True
            End Select
        Catch ex As Exception
            Debug.WriteLine(ex.ToString)
        End Try
    End Function
End Class


溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 玉林市| 定襄县| 渭南市| 徐闻县| 阳谷县| 新余市| 信宜市| 遵化市| 赫章县| 房产| 昭平县| 大兴区| 郯城县| 昭通市| 东丰县| 来安县| 舞钢市| 安多县| 彭水| 武定县| 新闻| 珠海市| 闽侯县| 虹口区| 绥棱县| 利辛县| 兴山县| 青田县| 阿巴嘎旗| 冷水江市| 额敏县| 镇远县| 朝阳市| 马公市| 偃师市| 濮阳市| 桃江县| 古浪县| 庐江县| 佳木斯市| 镇平县|