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

投稿日: 2004/01/30(Fri) 11:21
投稿者聖二
Eメールoriiji@nifty.com
URL
タイトルMSFlexGridとテキストボックスを組み合わせた場合のスクロールについて

お世話になります。どうぞよろしくお願い致します。

MSFlexGridとテキストボックスを組み合わせて
以下のように、MSFlexGridに直接記入できる様にしています。
おおよそうまくいくのですが
スクロールバーでスクロールした時に
テキストボックスの値はそのままで
MSFlexGridだけがスクロールしてしまいます。
どうにかならないでしょうか。

自分だけで使うプログラムではないので
その現象を知らない人が使うと若干とまどいがあると思います。

よろしくお願い致します。

Private Sub Form_Load()
    Me.Show

    With MSFlexGrid1
        .Row = 1
        .Col = 1
        .RowSel = 1
        .ColSel = 1
    End With
    
    MSFlexGrid1_EnterCell

End Sub

Private Sub MSFlexGrid1_EnterCell()
        .Text = ""
        
        .Visible = False
        
        'テキストボックスの位置とサイズを合わせる
        .Top = MSFlexGrid1.Top + MSFlexGrid1.CellTop
        .Left = MSFlexGrid1.Left + MSFlexGrid1.CellLeft
        .Height = MSFlexGrid1.CellHeight
        .Width = MSFlexGrid1.CellWidth
        
        .Text = MSFlexGrid1.Text
        
        .Visible = True
        
        .SetFocus
        
    End With
    
End Sub

Private Sub MSFlexGrid1_LeaveCell()

    MSFlexGrid1.Text = ""
    MSFlexGrid1.Text = Text1.Text
    
End Sub

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
    Dim dRow As Long
    Dim dCol As Long
    
    If KeyCode = vbKeyReturn Or KeyCode = vbKeyDown Then
        dRow = MSFlexGrid1.Row + 1
        If dRow < MSFlexGrid1.Rows Then
            MSFlexGrid1.Row = dRow
        End If
    ElseIf KeyCode = vbKeyUp Then
        dRow = MSFlexGrid1.Row - 1
        If dRow > 0 Then
            MSFlexGrid1.Row = dRow
        End If
    ElseIf KeyCode = vbKeyRight Then
        dCol = MSFlexGrid1.Col + 1
        If dCol < MSFlexGrid1.Cols Then
            MSFlexGrid1.Col = dCol
        End If
    ElseIf KeyCode = vbKeyLeft Then
        dCol = MSFlexGrid1.Col - 1
        If dCol > 0 Then
            MSFlexGrid1.Col = dCol
        End If
    End If

End Sub


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

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

- Web Forum -