MSFlexGridの複数選択行を取得するには?


めろんぱん  2005-02-08 00:43:39  No: 119482

はじめまして。
色々検索してみたのですが、どうしても方法がわからないので
質問させてください。

MSFlexGridで複数行を選択します。
(※  Ctrlキーを用いて、1行目、3行目、7行目など)。

その時、その選択された行番号を取得するには
どうしたらよいのでしょうか?

何か方法がありましたらご教授ください。
よろしくお願いします。


特攻隊長まるるう  2005-02-08 01:39:28  No: 119483

>MSFlexGridで複数行を選択します。
>(※  Ctrlキーを用いて、1行目、3行目、7行目など)。
それ、できましたっけ?(^^;)…複数行は選択できますが、
連続してないと選択できないと思うんですが?。

MSFlexGrid は、どのセル(行)と、どのセル(行)と、…どのセル(行)が
選ばれているか?というような選択ではなく、アクティブセルからどのセル
まで選択されているか?というような選択の仕方だと思いますが?
・アクティブセルは Col、Row プロパティ
・選択範囲の最後(または最初)のセルは ColSel、RowSel プロパティ
で分かります。


めろんぱん  2005-02-08 01:56:31  No: 119484

はい、連続行の場合の複数行の選択は可能でした。

今回取得したいのは連続でない場合の複数行の行番号の取得です(><;)
やはり連続行以外の複数行の行番号を取得するというのは、
ムリなのでしょうか?


特攻隊長まるるう  2005-02-08 02:41:39  No: 119485


……
アニメ一休さんを思い出しました。(^^;)
『屏風の中の虎を退治してみよ。』
『退治しますのでこちらに追い出して下さい。』

Ctrl + [次のセル]を選ぶと先に選択していたセルの
選択状態が解除されますよね?。つまりは MSFlexGrid
をプログラムした人は、連続行以外の複数行選択に
対応させようと思って作っていないと考えられます。

プログラムの世界で『無理か?』と聞かれると、
究極のところ『コントロールを改造すれば…』とか
があるので困りますが、まぁ、すぐにどうこうなる
ものではないと思います。とりあえず『ボクは知らない』
と言っておきます。しばらく待ってみて下さい。

…エクセル使えば良いのでは?とも思いますが。


Say  2005-02-08 03:15:59  No: 119486

>…エクセル使えば良いのでは?とも思いますが。
いましがた
となりの掲示板にMS Spreadsheetコントロールの使った例書いてきました。
案外タイムリーかも。


ひろ  2005-02-08 03:47:47  No: 119487

案1:VsFlexGridを使う
  (SelectionModeをflexSelectionListBoxにする)

案2:ListBoxを使う(表示制御が単純な場合)


特攻隊長まるるう  2005-02-09 19:24:25  No: 119488

セル選択時の処理を MSFlexGrid にさせず、フォーカスの処理を
背景色を変更する処理に置き換えて全て自分で制御する。

・選択セルの背景色を特定の色に決めて設定。
・アクティブセル変更時、もしくはキーダウンイベントで方向キー
押下時に Ctrl キーが押されている場合、背景色を変更する処理実行。
・Ctrl キーが押されていない場合、全てのセルの背景色をデフォルト
(白色)に戻す。
・マウスのイベントでも同様の処理実行。
・選択セル(行)を取得したい場合は、背景色が特定の色になっている
セルを探して取得。

などを作り込めば擬似的にそんなコントロールに見えるかも?
セルの数が増えると重くなる可能性があります。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加