投稿時間:2004/11/09(Tue) 10:47 投稿者名:jikoryuu
Eメール:
URL :
タイトル:Re: MSFlexGridでスクロールしない列を作る。
スクロールのたびに書き換える方法です。 スクロール時にちらつきますが、Redrawを書き換え時にOffにすると、最終行で バグが発生し、コントロールが操作不能になります。ですのでRedrawはスクロール時 にはFalseにしないで下さい。
Private Sub Form_Load() Dim i As Long Dim j As Long With MSFlexGrid1 .Cols = 3 .Rows = 101 For i = 1 To 100 .Row = i .Col = 1 .Text = i .Col = 2 .Text = "Row" & i Next End With End Sub
Private Sub MSFlexGrid1_Scroll() With MSFlexGrid1 Dim i As Long Dim j As Long On Error GoTo Err_Section If .LeftCol = 1 Then j = .TopRow .Col = 1 For i = j To 15 + j '15は可視可能な最大行数 .Row = i .Text = i - j + 1 Next End If End With Exit Sub Err_Section: If Err.Number > 0 Then '最終行に近づき行指定範囲を超えたとき 'Row指定時に限界を越えるためエラーになります End If End Sub
可視可能な最大行数についてはResize時などに表示行数を計算するか Scrollイベント内で計算する方法があります。あまり大きな値にすると、 ループ回数が増え、スクロールや表示が遅くなります。
|