VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 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


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -