MSFlexGrid行選択状態

このQ&Aのポイント
  • VB6.0やWindowsXPで使用しているMSFlexGridで行選択状態が解除される問題についての質問です。処理起動時やソート、検索処理後に行選択状態が解除されてしまうため、修正方法を知りたいとのことです。
  • 質問者はフォーカスイベントに'MSFlexGrid1.SelectionMode = flexSelectionByRow'を設定していますが、それでは問題が解決しないことに困っています。
  • 質問者は他の回答を参考にしましたが理解できず、解決できていません。この問題に対するヒントや具体的な解決策を教えていただけると助かります。
回答を見る
  • ベストアンサー

MSFlexGrid 行選択状態

現在VBを勉強しております。(WindowsXP、VB6.0) http://oshiete1.goo.ne.jp/qa996239.html ↑の質問と同じ内容で悩んでいるんですが、回答を見ても理解出来ず、解決出来ていません(>_<) 1.処理起動時に、テキストファイルからデータを読み込み、グリッドへ表示した後。 2.ソートした後。 3.「検索」処理にてデータを絞り込んで表示した後。 以上3点の時に、行選択状態でなくなってしまうので、それを修正したいんですが、方法が分かりません(;_:) 現在は、グリッドのフォーカスイベントに MSFlexGrid1.SelectionMode = flexSelectionByRow を設定しているだけです。 以上、よろしくお願いいたしますm(__)m

  • ya-cha
  • お礼率68% (184/268)

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

  • ベストアンサー
  • korin_
  • ベストアンサー率69% (46/66)
回答No.1

こんにちは。 以下を追加してみたらどうですか? '行を選択 MSFlexGrid1.Row = 1 MSFlexGrid1.RowSel = 1 '列を選択 MSFlexGrid1.Col = 1 MSFlexGrid1.ColSel = MSFlexGrid1.Cols - 1

ya-cha
質問者

お礼

ご回答ありがとうございますm(__)m バッチリ出来ました(^^)v スーパーありがとうございます!!!

関連するQ&A

  • MSFlexGridとDataGridの違いについて

    VBの勉強をしております。 WindowsXP、VB6.0です。 標記の件について質問させてください。 MSFlexGridは、グリッドの結合や色を付けたりするのに適している。 DataGridはエクセルのように、直接グリッド内を編集できるが、結合は無理で、色付けの設定はグリッド単位では指定できない。 2つのグリッドのどちらを使えば良いのか分からず、自分で調べてみた所、以上のような違いがあるのでは、という所までは分かりました。 行いたい処理は、 ・ファイルからデータを取り出し、グリッドへ表示。データの追加、修正、削除を行い、ファイルへ保存する。 機能として、検索とソートを行える。 また、データをクリックした際に、セルではなく、行全体の色を変更し、「行が選択されている」という見た目にしたい。 以上のような考えがあるのですが、実装が簡単なのはどちらのグリッドなのでしょうか? また、他に上記のような処理が可能なコントロールがあれば教えていただけないでしょうか? 以上、初心者なもので、文章が理解しづらいかもしれないですが、よろしくお願いいたします。

  • MSFlexGridで↑や↓押下時の処理

    現在VBの勉強をしております(WindowsXp、VB6.0) MSFlexGridの行を選択すると、行のデータをテキストボックスへ表示する、といった処理を実装したんですが、キーボードの「↑」や「↓」押下時に、選択行は変わるんですが、クリックイベントでもフォーカスイベントでも処理を拾えません・・・。 まだ試してはいないんですが、keyDownイベントで、「↑」「↓」を判断し、更にグリッドにフォーカスが存在する場合に、1行上(または下)のデータをテキストボックスに表示する。 という処理をしないと不可能でしょうか? どう考えても上記の方法はスマートでは無いなぁと思い、何か良い方法があれば教えていただきたく質問させていただきました。 よろしくお願いいたしますm(__)m

  • VB6のMsFlexGridコントロールについて

    取得したデータ数分の行にデータを表示して その後10カラム目のデータでソートしているのですが 行選択状態の表示が消えてしまいます。 MSFlexGrid1.Col = 10   MSFlexGrid1.Sort = flexSortGenericDescending '* 降順にソート MSFlexGrid1.Row = 1 どうやら、Col、Rowプロパティに値を設定した時点で消えているようです。 これらをやらないと1行目が選択状態と なっています。表示後カーソルでクリックすると 行選択状態になります。 表示時点で行選択状態にさせたいのですがなにか 手段があれば教えてください。 設定しているプロパティは下記の通りです。 HighLight=1:(選択を強調表示) SelectionMode=1:(行全体を選択) よろしくおねがいします。

  • MSFlexGrid

    エクセル上にMSFlexGridを表示させたいのですが、コントロールの一覧に表示されません。 エクセルに付属のVisualBasicEditor(VB6?)でDBからデータ取得し、MSFlexGridに表示させたいと思っています。 色々調べては見たのですが、MSFlexGridをエクセル上に配置するというものが検索できませんでした。 友人のエクセルにはエクセルのコントロールにMSFlexGridが表示されています。 おそらく何かのライブラリ?か何かが必要だと思うのですが知っている方いましたらご教授ください。

  • MSFlexGrid

    VB6SP6を用いています。MSFlexGridですが、固定行をラベルに用いています。このグリッドをクリックして処理を行っています。固定行では、クリックを無視してほしいのです。固定行をクリックしても、grid.Rowの値は0ではなく、押してもいない、1が返ってきます。本来はクリックしたくない場所ですが、処理を行う1行目をクリックしたことと同じになってしまいます。 ラベル部分をクリックしないようにと伝えていますが、やはり具合が悪いです。 良い、回避方法はないでしょうか。

  • MSFlexGridのSortメソッドについて

    VBの勉強をしております。(WindowsXP、VB6.0) MSFlexGridのSortは、内部的にはどの種類のソートなのでしょうか? ご存知の方がおられたら教えていただけますでしょうか? 課題で、「実行速度の効率を重視する」という項目があるのですが、 自作でクイックソートした方が良いのかどうか悩んでいます。 サンプルデータを作成して計測すればどちらが早いか分かるかもしれないですが、ソートの種類だけでもご存知の方がおられたら教えていただきたく質問させていただきました。 以上、よろしくお願いいたします。

  • MSFLEXGRIDについて

    MSFLEXGRIDを使ってデータベースの内容を表示させようと考えています。 使い方としてはデータベースからfilterをつかって対象を絞ったデータをMSFLEXGRIDで項目を並び替えて表示させようとしたときにうまくいきません。 sqlで項目を並び替えてdatagridを使うしかないのでしょうか? なぜMSFLEXGRIDにこだわるかというと表示させた結果に対し、特定の行をダブルクリックすると別のフォームに移動するといったプログラムを作ろうとしているため、この方法がいいのかなと考えているからです。 どうかご教授のほどよろしくお願いします。 サーバー 2000 SQLサーバ2003 開発クライアントPC W2K VB6

  • MSFlexGridのデータ表示位置の設定

    VB6.0の勉強をしております。 windowsXPです。 標記の件についてなんですが、グリッド内のデータが数値なのか文字なのかで位置が変わってしまうのですが、これを全て左寄せにしたいと思っております。 以下のようなページを見つけたんですが、 http://m--takahashi.com/bbs/pastlog/a3100/A3027.html グリッドにデータを表示した後、ColとRowを動かしながら、全要素(セル)に対して処理しないとやはりダメでしょうか? よろしくお願いいたします。

  • EXCELのデータをMSFlexGridへ

    VB6.0で開発しています。 EXCELのデータをMSFlexGridへ表示しています。 下のように表示出来たのですが 特定の行だけ表示したいのですがどうすればいいでしょうか? 例えばA列とC列とD列といった場合。 よろしくお願いします。

  • MSHFlexGridの選択行の表示方法

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

専門家に質問してみよう