サポート&サービス

Home > サポート&サービス > テクニカルサポート > ナレッジベース

テクニカルサポート

製品に関する技術的なサービスを提供しています。製品別の技術情報(ナレッジベース)および、対応環境情報をご覧いただけます。また、E-mailによるテクニカルサポートのお申し込みもこちらで受け付けています。

ナレッジベース

[True DBGrid for Windows Forms] スプリットを追加すると、RowColChangeイベントでセルを正しく移動できない
文書番号 : 33105     文書種別 : Bug
登録日 : 2012/05/30     最終更新日 : 2012/05/30
文書を印刷する
対象製品
ComponentOne Studio 2010J
ステータス
仕様・制限
詳細
グリッドにスプリットを追加すると、RowColChangeイベント内で設定した列移動の禁止が正しく反映されず、セルを移動できてしまう

◆再現ステップ

1. フォームに C1TrueDBGridを貼り付ける
2. デザイナで新しい列を3列追加し、1列目のValuItemsをCheckBoxに設定する
3. グリッドのRowColChangeイベントに、2列目の移動を禁止するコードを記載する
  if (col == 1)
  {
  c1TrueDBGrid1.Row = e.LastRow;
    c1TrueDBGrid1.Col = preCol;
  }
  // 列を記憶
  else preCol = col;
    ※col, precolはそれぞれ、現在の列、セル移動前の列を指す
4. 標準のチェックボックスを追加し、CheckedChangedイベントに、以下のように
  スプリットを追加するコードを記述する
  c1TrueDBGrid1.InsertHorizontalSplit(1);
  c1TrueDBGrid1.Splits[0].SplitSize = 10;
5. プロジェクトを実行する
6. 1列目(col=0)のチェックボックスのチェックをONにして、新規行を追加する
7. ステップ6を5回繰り返して、5行追加する
8. 3行1列目のセルを選択する
9. 4行2列目のセルをクリックする

【結果】
3行1列目のセルに当たっていたフォーカスは移動しない(期待する動作)

10. 4で追加したチェックボックスのチェックをONにし、スプリットを表示する
11. 3行1列目のセルを選択する
12. 4行2列目のセルをクリックする

【結果】
3行1列目のセルのフォーカス枠が、3行2列目に移動する(期待する動作ではない)

※この動作は、製品仕様上の制限となります。
RowColChangeイベントは、セルの選択変更を阻止するようには設計されていません。
期待する動作を行わせるには、回避法に記載した方法をご検討ください。
回避方法
次の2通りの方法が考えられます。

(A)目的の列のAllowFocusプロパティをFalseに設定する
(B)RowColChangeイベントの代わりにBeforeRowColChangeイベントを使って列移動を禁止する

この情報は、疑問・問題解決のお役に立ちましたか?

    


こちらに入力されたご質問には回答できませんので、製品に関するお問い合わせは、別途「E-mailサポート」をご利用ください。


※ 個人情報保護のため、個人情報の記入はご遠慮ください。

このページの先頭へ