目次へ戻ります
VB サンプル


VB グリット イベント

階層フレキシブル グリッド(MSHFlexGrid) コントロール

テーブル データの表示および操作を行なえるコントロールです。
[コンポーネント] Microsoft Hierarchical FlexGrid Control 6.0 (SP3) (OLEDB) (MSHFLXGRD.OCX)
●Click マウスボタンをクリックした
●DblClick マウスボタンをダブルクリックした
●MouseMove マウスを移動した
●MouseDown マウスボタンを押した
●MouseUp マウスボタンを離した
●KeyPress 文字キーを押した
●KeyDown キーを押した
●KeyUp キーを離した
●LeaveCell セルが別のセルに変更される直前
●EnterCell セルが別のセルに変更された
●RowColChange セルが別のセルに変更された
●SelChange セル範囲が別のセルまたはセル範囲に変更された
●Validate フォーカスを移動する直前
●GotFocus フォーカスが設定された
●LostFocus フォーカスを失った
●Scroll スクロールした
●Collapse グリッド内の行を折りたたんだ
●Compare Sortプロパティが Custom Sort (9)に設定された
●DragDrop コントロールをオブジェクト上までドラッグした
●DragOver ドラッグ アンド ドロップ操作の進行中
●Expand グリッド内の行を拡張した
●Click、DblClick イベント

【機能】マウスボタンをクリック/ダブルクリックしたときに発生します。

【書式例】Private Sub MSHFlexGrid1_Click()
【書式例】Private Sub MSHFlexGrid1_DblClick()

【イベントの発生順→】
    
クリック MouseDown MouseUp Click    
ダブルクリック MouseDown MouseUp Click DblClick MouseUp

※ Click イベントに対してコードが記述されている場合、DblClick イベントが発生しなくなります。
※ マウスの左ボタン、右ボタン、中央ボタンを区別するときは、MouseDownまたは、MouseUp イベントを使います。
●EnterCell、RowColChange イベント

【機能】アクティブなセルが別のセルに変更されたときに発生します。

【書式例】Private Sub MSHFlexGrid1_EnterCell()
【書式例】Private Sub MSHFlexGrid1_RowColChange()

【イベントの発生順→】
    
マウスでセル移動(クリック) LeaveCell EnterCell RowColChange MouseDown SelChange MouseUp Click
移動キーでセル移動 LeaveCell EnterCell RowColChange SelChange KeyDown    

※ 固定型の行をクリックすると、その行の最初の非固定型の列でこのイベントが発生します。
●GotFocus イベント

【機能】フォーカスが設定されたときに発生します。

【書式例】Private Sub MSHFlexGrid1_GotFocus()

【イベントの発生順→】
    
クリック MouseDown GotFocus MouseUp Click    
ダブルクリック MouseDown GotFocus MouseUp Click DblClick MouseUp

※ ほかのコントロールの有効/無効または表示/非表示を切り替えるという処理はここで記述します。
●KeyDown、KeyUp イベント

【機能】キーを押したとき/離したときに発生します。

【書式例】Private Sub MSHFlexGrid1_KeyDown(KeyCode As Integer, Shift As Integer)
【書式例】Private Sub MSHFlexGrid1_KeyUp(KeyCode As Integer, Shift As Integer)

     KeyCode : F1キーのときは vbKeyF1、Homeキーのときは vbKeyHome など、キーコードを示す定数

Shift : Shift、Ctrl、Alt の押されたキーに対応するビットがオンになります。
Shift vbShiftMask 1
Ctrl vbCtrlMask 2
Alt vbAltMask 4

【 例 】
  If ((Shift And vbShiftMask) > 0) Then
    Debug.Print "シフトキーが押されています。"
  End If

【イベントの発生順→】
    
文字キーを叩いた KeyDown KeyPress KeyUp
特殊キー/編集キーを叩いた KeyDown KeyUp  
移動キーを叩いた KeyDown    

Tabキーはキーイベントが発生しません。
KeyDown、KeyUpイベントでは、大文字と小文字('A'と'a')は同じキーコード(文字)として認識されます。
●KeyPress イベント

【機能】文字キーを押したときに発生します。

【書式例】Private Sub MSHFlexGrid1_KeyPress(KeyAscii As Integer)

【 例 】
  If (KeyAscii = 13) Then Combo2.SetFocus '改行ならフォーカスを次へ移動

【イベントの発生順→】
    
文字キーを叩いた KeyDown KeyPress KeyUp

KeyPressイベントでは、大文字と小文字('A'と'a')は異なるキーコード(文字)として認識されます。
ファンクションキー、編集キー(Ins,Del,BS)、移動キー、およびこれらのキーと補助キーとの組み合わせなど、KeyPressイベントでは認識できないキー操作を処理する場合は、KeyDown、KeyUpイベントを使用します。
●LeaveCell イベント

【機能】アクティブなセルが別のセルに変更される直前に発生します。

【書式例】Private Sub MSHFlexGrid1_LeaveCell()

【イベントの発生順→】
    
マウスでセル移動(クリック) LeaveCell EnterCell RowColChange MouseDown SelChange MouseUp Click
移動キーでセル移動 LeaveCell EnterCell RowColChange SelChange KeyDown    

※ フォーカスが別のコントロールに移ったときには、このイベントは発生しません。
●LostFocus イベント

【機能】フォーカスを失ったときに発生します。

【書式例】Private Sub MSHFlexGrid1_LostFocus()

【イベントの発生順→】
    
フォーカスを失った Validate LostFocus

※ GotFocusイベントで設定した値を元に戻す場合はここで記述します。
※ フォーカスを失いたくない場合は、Validate イベントで制御します。
●MouseDown、MouseUp イベント

【機能】マウスボタンを押したとき/離したときに発生します。

【書式例】Private Sub MSHFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
【書式例】Private Sub MSHFlexGrid1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)

     Button : 押されたボタンに対応するビットのいずれか1つがオンになります。
左ボタン vbLeftButton 1
右ボタン vbRightButton 2
中央ボタン vbMiddleButton 4

Shift : Shift、Ctrl、Alt の押されたキーに対応するビットがオンになります。
Shift vbShiftMask 1
Ctrl vbCtrlMask 2
Alt vbAltMask 4

x、y : マウス ポインタの現在位置を表す数値です。(関連:ScaleHeight、ScaleWidth、ScaleLeft、ScaleTop)

【イベントの発生順→】
    
クリック MouseDown MouseUp Click    
ダブルクリック MouseDown MouseUp Click DblClick MouseUp
●MouseMove イベント

【機能】グリッド上でマウスを移動したときに発生します。 ※実際はマウスポインタの下をグリッドが移動したとき

【書式例】Private Sub MSHFlexGrid1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)

     Button : 押されたボタンに対応するビットがオンになります。
左ボタン vbLeftButton 1
右ボタン vbRightButton 2
中央ボタン vbMiddleButton 4

Shift : Shift、Ctrl、Alt の押されたキーに対応するビットがオンになります。
Shift vbShiftMask 1
Ctrl vbCtrlMask 2
Alt vbAltMask 4

x、y : マウス ポインタの現在位置を表す数値です。(関連:ScaleHeight、ScaleWidth、ScaleLeft、ScaleTop)

【 例 】
  If (Button And vbLeftButton) > 0 Then
    MsgBox "左ボタンが押されています。"
  End If

※ フォーカスの状態に関係なく、マウスポインタの下をグリッドが移動しているとイベントが発生します。
※ MouseMove内でグリッドを移動させるとイベントの連鎖が発生して、エラーの原因になります。
●Scroll イベント

【機能】スクロールしたときに発生します。

【書式例】Private Sub MSHFlexGrid1_Scroll()

【イベントの発生順→】
    
マウスでセル移動(クリック) LeaveCell EnterCell RowColChange MouseDown Scroll SelChange MouseUp Click
移動キーでセル移動 LeaveCell Scroll EnterCell RowColChange SelChange KeyDown    

ScrollTrack プロパティが真 (True) に設定されている場合、ユーザーがマウス ポインタをドラッグしているかスクロールを実行しているときに、このイベントが発生します。
ScrollTrack プロパティが偽 (False) に設定されている場合、ドラッグが完了した時点でこのイベントが発生します。
●SelChange イベント

【機能】選択したセル範囲が別のセルまたはセル範囲に変更されたときに発生します。

【書式例】Private Sub MSHFlexGrid1_SelChange()

【イベントの発生順→】
    
マウスでセル範囲指定 MouseDown SelChange MouseUp Click      
マウスでセル移動(クリック) LeaveCell EnterCell RowColChange MouseDown SelChange MouseUp Click

※ プログラムから Row、Col、RowSel、または ColSelプロパティを使用して選択領域を変更することにより、このイベントを発生させることができます。
●Validate イベント

【機能】フォーカスが移動する前に発生します。

【書式例】Private Sub MSHFlexGrid1_Validate(Cancel As Boolean)
    
Cancel コントロールがフォーカスを失うかどうかを決定する値です。真 (True) に設定すると、コントロールはフォーカスを維持します。

【イベントの発生順→】
    
フォーカスの移動 Validate LostFocus

【 例 】
  If (Flg = 1) Then
    Cancel = True
  End If

※ フォーカスを受け取るコントロールが CausesValidation プロパティを真 (True) に設定している場合に限り、Validate イベントが発生します。

目次へ戻ります