投稿時間:2002/08/13(Tue) 21:35 投稿者名:ゆう(U)
Eメール:
URL :
タイトル:Re: フレックスグリッドのイベントについて
投稿日 : 2002/08/13(Tue) 17:45 分を転記しました。
簡単なサンプルを書いてみました・・・
テキストボックスへの初期表示等は組み込んでいません、 スクロール、セルの移動、サイズ変更による表示域への 移動等に対処できていると思います。
※機能不足な点は別途追加してみてください。
サンプル) [使用コントロール] MSFlexGrid コントロール1個(MSFlexGrid1) テキストボックス コントロール1個(Text1) [コード] Option Explicit Private Declare Function SetParent Lib "user32" _ (ByVal hWndChild As Long, _ ByVal hWndNewParent As Long) As Long Private Sub Form_Load() Dim i As Long
With MSFlexGrid1 .Rows = 20 .Cols = 6 For i = 0 To .Rows * .Cols - 1 .TextArray(i) = CStr(i) Next End With
Call SetParent(Text1.hWnd, MSFlexGrid1.hWnd) With Text1 .BorderStyle = vbBSNone .TabStop = False .ZOrder vbBringToFront End With Call MoveText End Sub
Private Sub Form_Resize() With Me MSFlexGrid1.Move .ScaleLeft, .ScaleTop, .ScaleWidth, .ScaleHeight Call MoveText End With End Sub
Private Sub MSFlexGrid1_EnterCell() Call MoveText End Sub
Private Sub MSFlexGrid1_Scroll() Call MoveText End Sub
Private Sub MoveText() Dim sngTwipsPerPixelX As Single Dim sngTwipsPerPixelY As Single
sngTwipsPerPixelX = Screen.TwipsPerPixelX sngTwipsPerPixelY = Screen.TwipsPerPixelY
With MSFlexGrid1 If .ColIsVisible(.Col) And _ .RowIsVisible(.Row) Then Text1.Visible = True Text1.Move .ColPos(.Col) + sngTwipsPerPixelX, _ .RowPos(.Row) + sngTwipsPerPixelY, _ .ColWidth(.Col) - sngTwipsPerPixelX * 3, _ .RowHeight(.Row) - sngTwipsPerPixelY * 3 Else Text1.Visible = False End If .Refresh End With End Sub
|