常時入力モードを使用する場合の注意点

文書番号 : 34435     文書種別 : 使用方法     登録日 : 2012/11/21     最終更新日 : 2012/11/21
文書を印刷する
対象製品
MultiRow for Windows Forms 7.0J
詳細
GcMultiRow.EditModeプロパティをEditOnEnterに設定すると、セルへ移動したときダブルクリックなどの操作を経ずに自動的にセルが編集状態に遷移します。この結果、現在のセルが常に編集状態となり、常時入力モードを実装できます。

常時入力モードではGcMultiRowコントロールではなく、セルに実装されている編集機能「セル編集コントロール」がアクティブになるため、既定の動作とさまざまな違いが発生します。次の情報は、これらの違いや対処方法の例です。
  • MultiRowではセルの編集時にGcMultiRowコントロールからセル編集コントロール(例:TextBoxEditingControl)にフォーカスが移動するため、セルの編集時にGcMultiRow.LeaveイベントとGcMultiRow.Enterイベントが発生します。常時入力モードが有効の状態でセルを移動するとき、これらのイベントはより高い頻度で発生することになります。GotFocusやLostFocusといった類似のイベントやEditingControlShowingのような関連するイベントも同様です。
  • セルが編集中のときショートカットキーは、GcMultiRowコントロールではなくセル型のショートカットキーが適用されます。たとえばコンボボックス型セルではPageDownキーとPageUpキーがドロップダウンリストの操作に割り当てられているため、この操作が有効のときGcMultiRowコントロールではページスクロールが無効になります。これを回避するには、ショートカットキーを再実装します。
    セルが編集中のときにGcMultiRowコントロールのショートカットキーのアクションを実行するには?
  • セルの編集中の値は、セル編集コントロールが持つ値が最も表示に即したものになります(例:TextBoxEditingControl.Textプロパティ)。通常はGcMultiRow.CellEditedFormattedValueChangedイベントとGcMultiRow.GetEditedFormattedValueメソッドの使用をお勧めします。
    セルの値が変更されたときに処理を行うには?
  • セルのスタイルには、セルの非編集時のみ有効なものがあります。非編集時と編集時の差異が大きい場合、常時入力モードでは画面の変化がより顕著になる場合があります。
  • 常時入力モードではフォーカスがセル編集コントロールにあるため、GcMultiRowコントロールのクリップボード関連のイベントは使用できません。
  • 数値型セル(NumericUpDownCell)では、既定で上下キーの操作がスピンボタンに割り当てられています。この操作を無効にするには、NumericUpDownCell.InterceptArrowKeysプロパティをFalseに設定します。
  • InputManCellでも同様に、一部のセル型で上下キーの操作がスピンボタンに割り当てられています。この操作を無効にするには、次の情報を参照してください。
    InputManCell で上下矢印キーによるセル移動を有効にするには?
  • セルのスタイルの選択色は、セルが編集状態のとき反映されません。たとえば行単位での色変更や行モード(GcMultiRow.ViewMode=Row)を併用している場合に違和感が生じる場合があります。この現象を軽減するには次の情報を参照してください。
    常時入力モードで SelectionBackColor プロパティが現在のセルに反映されないのはなぜですか?
  • 既定の設定では、セルの編集時には検証エラーを示すエラーアイコンや下線を表示できません。これらのエラーを表示可能にするには、GcMultiRow.ShowErrorIconInEditingStatusプロパティまたはGcMultiRow.ShowWaveLineInEditingStatusプロパティをTrueに設定します。ただし、IconNofiyとLineNotifyで検証エラーを表示する場合は、セルの編集時にもエラーを表示できます。
ほかに、常時入力モードには次のような制限が存在します。次の情報はヘルプからの抜粋です。
  • GcMultiRow.ReadOnly プロパティ が True または GcMultiRow.ViewMode プロパティ が Display のとき、常時入力モードは無効です。
  • 常時入力モードが有効のとき、ドラッグ操作でセルを選択することはできません。
  • 常時入力モードを使用すると、セルを移動するたびに自動的に編集が開始されるため、キーボード操作によるスクロールの速度が低下します。
  • 常時入力モードでは、セルを移動するまで編集結果は確定しません。セルの編集中にセルの値を参照する場合、セル編集コントロールの値とグリッドのセルの値が異なる点に注意してください。セル編集コントロールが編集中の値、グリッドのセルが編集前の値を保持しています。この動作は、GcMultiRow.EditMode プロパティ 以外の方法で常時入力モードを実装した場合にも当てはまります。
関連情報