投稿時間: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
|