'MSFlexGrid在強制整行選擇的情況下實現表頭排序
'
'功能:在單擊表頭時根據當前列進行排序,再次單
' 擊反序排列。單擊數據區域時進行整行選擇
'
'2005-09-21 FieldMAX
'********************************************
Private Sub Form_Load()
'創建一個8*8的MSFlexGrid并在其中填入隨機數
Dim i As Long
Dim j As Long
MSFlexGrid1.Rows = 8
MSFlexGrid1.Cols = 8
MSFlexGrid1.FormatString = "|A|B|C|D|E|F|G"
For i = 0 To 7
MSFlexGrid1.ColWidth(i) = 615
Next
For i = 1 To 7
MSFlexGrid1.TextMatrix(i, 0) = i
For j = 1 To 7
MSFlexGrid1.TextMatrix(i, j) = Int(Rnd * 1000)
n = n + 1
Next
Next
End Sub
Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
'在MSFlexGrid的實際應用中經常需要強制整行選并且還需要排序功能,
'但是由于MSFlexGrid本身的缺陷,在正常情況下是無法實現兩者兼得的。
'唯一的變通方法就是使用MouseDown或MouseUp事件獨有的"X","Y"坐標來
'確定點擊的列,再進行排序。
'這個排序程序已經經過修改,可以實現升序和降序兩種排序同時存在。
Dim i As Long
Dim j As Long
Dim Cw As Long
'如果Y坐標點擊的是表頭區域
If y < MSFlexGrid1.RowHeight(0) Then
Cw = 0
'用循環語句判斷X在那一列,I代表列數
For i = 0 To MSFlexGrid1.Cols - 1
Cw = Cw + MSFlexGrid1.ColWidth(i)
If x < Cw Then Exit For
Next
If i < MSFlexGrid1.Cols Then
'↑
If Left(MSFlexGrid1.TextMatrix(0, i), 1) <> "↓" Then
For j = 0 To 7
If Left(MSFlexGrid1.TextMatrix(0, j), 1) = "↓" Or Left(MSFlexGrid1.TextMatrix(0, j), 1) = "↑" Then MSFlexGrid1.TextMatrix(0, j) = Mid(MSFlexGrid1.TextMatrix(0, j), 2)
Next
MSFlexGrid1.Col = i '定位列坐標
MSFlexGrid1.Sort = 1 '進行升序排列
MSFlexGrid1.TextMatrix(0, i) = "↓" & MSFlexGrid1.TextMatrix(0, i)
Else
For j = 0 To 7
If Left(MSFlexGrid1.TextMatrix(0, j), 1) = "↓" Or Left(MSFlexGrid1.TextMatrix(0, j), 1) = "↑" Then MSFlexGrid1.TextMatrix(0, j) = Mid(MSFlexGrid1.TextMatrix(0, j), 2)
Next
MSFlexGrid1.Col = i '定位列坐標
MSFlexGrid1.Sort = 2 '進行升序排列
MSFlexGrid1.TextMatrix(0, i) = "↑" & MSFlexGrid1.TextMatrix(0, i)
End If
End If
End If
End Sub
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/
領測軟件測試網最新更新
關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月