• ベストアンサー

MSHFlexGridについて教えてください

1.1行選択してDblClickしたいのですが、   今複数行選択できてしまいますので1行しか選択できないようにするには   どうすればよいのか教えてください。 2.選択した行を色をかえているのですが、固定行は色がかわりません   替えることはできないのでしょうか? 3.フォーカスがMSHFlexGridにあるときに   ↑↓で選択行を移動したいのですがどうすればよいのか教えてください。  

質問者が選んだベストアンサー

  • ベストアンサー
  • iwaz
  • ベストアンサー率57% (8/14)
回答No.2

>1.1行選択してDblClickしたいのですが、... MS-FLEXGRIDだとどうしてもドラッグで選択範囲が反転できてしまうようです。先の回答でもあるようにVS-FLEXGRIDを使用するとプロパティの設定で簡単にできるのですが、残念ながらMS-FLEXGRIDにはそのプロパティがありません。それを1行だけ選択にするひとつの方法としては、グリッドコントロールのMouseUpイベント及びKeyUpイベントに以下の記述を入れるとできるかと思います。(以下の例は、グリッドコントロールをGrid1とした場合) If Grid1.Row <> Grid1.RowSel Then Grid1.RowSel = Grid1.Row End If でも、質問にあるような「グリッド上でダブルクリックする」と複数選択は解除されて1行だけしか選択されないと思いますがどうでしょう。 >2.選択した行を色をかえているのですが、固定行は色がかわりません 固定行(列?)は、色が変わらないです。例えば固定列のプロパティ(FixedCols)を 0 で設定するとその行全体が選択されるようになります。 >フォーカスがMSHFlexGridにあるときに↑↓で選択行を移動したい 同じようにやってみましたがフォーカスがある場合、↑↓キーで移動できました。 とりあえずご質問の内容だけで動作確認していますのでもしもこの機能を追加するときは他への影響がないか十分なテストを行ってみてください。

その他の回答 (1)

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

製品版(VS-FlexGrid)ならすべて出来ます。 MSHFlexGridは所詮VBのおまけで、機能が制限されています。

参考URL:
http://www.boc.co.jp/support/database/P1_88.htm
chiba-masaru
質問者

補足

できないということですか? VBの標準の機能だけで表形式で上記質問みたいなことが できるなにかないのですか? 新たなOCXはつかいたくないので

関連するQ&A

  • MSHFlexGridの選択行の表示方法

    VB6でプログラミングしているVB初心者です。 MSHFlexGridでデータを表示し、行単位で選択表示をしたいのですが… 初期表示の画面では行単位での表示ができています。 が、カーソルを移動すると先頭のセルが選択表示にならないのです。 プロパティの設定は  SelectionMode=1  FixedCols=0 この状況を直すには、どのようにしたらよいのでしょうか? ご存知の方、ご教授くださいますようお願いします。

  • MSHFlexGrid および MSFlexGrid に関して

    こんにちわ MSFlexGrid,HSHFlexGrid に関して下記の方法を調査中です。 ご存知の方いらっしゃいましたら、情報提供をよろしくお願い致します。 (1)固定行および固定列のグリッド線の色の設定。 (2)固定行でない行のスクロールの固定の方法。 ※エクセルのウィンドウの固定と同様の設定。 たびたび申し訳ありません。よろしくお願い致します。

  • 【C#】 複数行GcTextBoxのフォーカス移動

    【環境】 ・Visual Stadio2008 ・InputManツール追加済み 【やりたいこと】 複数行のGcTextBoxにEnterキーによるフォーカス移動を行った時に、入力内容がクリアされることがないようにしたい。 条件:メソッド追加を行わず、プロパティの値を変更して行う。 いつもお世話になります。 今回はレイアウトのことで質問させていただきました。 InputManのGcTextBoxを使用したアプリを作成しているのですが、複数行のGcTextBoxから別の項目にフォーカス移動を行う時、TABキーは問題ないのですが、Enterキーで行うと、文字が全選択状態になり、入力内容がクリアされてしまいます。 最初はEnterのクリックイベントでフォーカスセット時に、入力内容が選択されないようなコードを追加記述したのですが、それではダメだと上司に言われてしまいました。 なので、メソッド追加を行わず、(ツールの追加はOK)プロパティの値を変更することによって対処をしたいと考えています。 どうしたらよいでしょうか?

  • VBA シート 1行しか選択できないようにする

    お世話になっております。 Excel2003を使用しております。 現在、スケジュールボードみたいなものをExcelで作っております。 作るに当たり、単に、セルを選択したら色が変わる…というようにしているのですが、 複数行選択できてしまうので困っています。 選択し始めたら、1行しか選択できないようにする方法は何かありますか? 色を変更するのは、 Application.Intersect(Range(Target.Address), Range("D5:AA64"), Rows(Target.Row)).Interior 上記方法で1行しか変更できないようにしていますが、 下から上に複数行選択した場合も、 上から下に複数行選択した場合も 一番上の行の色が変わります(当たり前ですが) これでは困るので、 セルを選択する段階で、1行のみしか選択できないようにしたいです。 何か方法はないでしょうか? 回答お待ちしております。

  • 現在選択している行すべてに色を付ける

    エクセルで、現在選択している行すべてに色を付けることは可能ですか? 条件付き書式で可能ですか? マクロを組まないと無理ですか? アクセスでは、条件付き書式で、フォーカスのあるフィールドで、その行(レコード)に色を付けられますが エクセルで同じような事をやりたい場合の方法を教えてください。 画像のようにしたいです。 画像は手作業で色を付けました。

  • tableの任意行にfocusをあてる

    行いたいこと tableタグにあるTHREDタグとTBODYタグがあり、現在はTBODYタグの任意行を選択するとその行の色が変わるようになっています。 サーバアクションで画面遷移を行ったりした後、その画面に戻ってくる時に以前選択されていた行が存在したらそこで色が変わるようにしています。 そこで問題なのですが、その画面に戻ってきた時にしたのほうが選択行だった場合フォーカスが当たり、すくロースして表示してないと一瞬どこいった?という風に感じてしまいます。なので、そこの行まで飛ばしてやりたいのですが、できるでしょうか? 選択行の色変えには以下の関数を作って行っています。 function syncroData() { for(var i = 1 ; i < table10.rows.length ; i++){ if(i == hojirowid) { table10.rows[i].style.backgroundColor = "yellow"; } else { if(i%2 == 0){ table10.rows[i].style.background = "#fff8dc"; }else{ table10.rows[i].style.background = "#f5fffa"; } } } 試しにfor文が終わった後に table10.rows[i].focus(); と記述してみましたが、そういうメソッドが使えないのかそこまで飛んでくれませんでした(もしかしたら、フォーカスだけあたってスクロールしなかっただけ?) 以上、宜しくお願い致します。

  • テキストボックスをダブルクリックしたらテキスト全てを選択状態にすることは可能ですか?

    アクセス2003です。 イベントプロシージャなどで(DblClick) ダブルクリックしたらテキストボックスの値を選択状態にしたい (色を反転させる)のですが可能でしょうか? ご教授よろしくお願いします。

  • 離れている行を複数選択して同じ色に変える

    Excel2013で離れている行を複数選択して一気に同じ色に変える方法教えてください。

  • vaSpreadのフォーカス移動?

    vaSpreadで1レコードを3行明細で表示させています。3行明細の内,1行目の6列,7列,2行目の1列目がアンロックでそれ以外はロックしています。vaSpread内でtabキーを押下すると順番にカーソルが移動し1行目6列,7列,2行目2列,次明細の1行目6列と移動しますが、2行目2列にフォーカス移動させずに、1行目6列,7列,次明細の1行目6列,7列という具合にフォーカス移動させるにはどうすればいいのでしょうか? sendkeyで出来そうなことがヘルプにあって色々やってみましたがうまく行きません。どうかよきアドバイスをお願いいたします。

  • エクセル2007で困っています

    先日パソコンを買い換えたため、エクセル2007を使い始めました。 そこで2003ではできたことが今のところできないので、やり方を教えてください。  (1) 挿入で図形を作り、この図形にテキスト編集で文章を入力。    文章が長く数行になるため、    上下方向にこの数行を均等に割り付けたいです。  (2) 複数の図形を作成した際に移動などの為、    一緒に選択をさせたいですが、    以前のバージョンでは矢印みたいなのを選択し、    簡単に複数を選択できたのに、今はできずにいます。 以上2点についてやり方を教えてください。 また、できないようでしたら、同じパソコン上に2007と2003を同居させることが可能かどうか?方法?を教えてください。お願いします。