'===========================================================================
' ファイル名 : frmMain.frm
' ファイル説明 : フレキシブル グリッドにチェックボックス列を設定
' 作成者 : Uz
' E-Mail : uz@violet.plala.or.jp
' HomePage : http://www1.plala.or.jp/uz/
' 作成日 : 1998/06/05 (Fri)
' 修正日 : 2001/08/07 (Tue)
' 備考 : このほかにフォーカスの移動系の処理等、いろいろ制御が必要だと思います。
'===========================================================================
Option Explicit
Private Const CHECK_COL = 2 'チェックボックス列を設定
Private Sub Check1_Click(Index As Integer)
MSFlexGrid1.TextMatrix(Index, 3) = IIf(Check1(Index).Value, "Check", "Uncheck")
End Sub
'///////////////////////////////////////////////////////////////////////////
' 関数名 : Form_Load
' 目的説明 : 初期設定
'///////////////////////////////////////////////////////////////////////////
Private Sub Form_Load()
Dim I As Long
On Error Resume Next
With MSFlexGrid1
.FixedRows = 0
.RowHeightMin = 255 'チェックボックスより行の高さを狭く出来ないように設定
.ColWidth(CHECK_COL) = 255 'チェックボックス列の列幅設定
For I = .FixedRows To .Rows - 1 '行のあるだけ繰り返す
.TextMatrix(I, 0) = I
Call Load(Check1(I)) 'コントロール配列の作成
Check1(I).Left = .Left + .ColPos(CHECK_COL) + (.ColWidth(CHECK_COL) - Check1(0).Width) / 2 'コントロール配列のベースの設定
Check1(I).Top = .Top + .RowPos(I) + (.RowHeight(I) - Check1(0).Height) / 2 '位置設定
Check1(I).ZOrder '手前に持ってくる
Check1(I).Visible = .RowIsVisible(I) And .ColIsVisible(CHECK_COL) 'セルが表示されていれば表示する
Next
End With
End Sub
'///////////////////////////////////////////////////////////////////////////
' 関数名 : MSFlexGrid1_Scroll
' 目的説明 : スクロールイベント
'///////////////////////////////////////////////////////////////////////////
Private Sub MSFlexGrid1_Scroll()
Dim I As Long
With MSFlexGrid1
For I = .FixedRows To .Rows - 1 '行のあるだけ繰り返す
Check1(I).Visible = .RowIsVisible(I) And .ColIsVisible(CHECK_COL) 'セルが表示されていれば表示する
Check1(I).Left = .Left + .ColPos(CHECK_COL) + (.ColWidth(CHECK_COL) - Check1(0).Width) / 2 '位置設定
Check1(I).Top = .Top + .RowPos(I) + (.RowHeight(I) - Check1(0).Height) / 2 '
Next
End With
End Sub
|