• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:階層フレキシブルコントロールで質問です。)

VB6の階層フレキシブルコントロールでADODCのスクロール位置の問題が発生する

このQ&Aのポイント
  • VB6の階層フレキシブルグリッドコントロール(MSHFLEXGRID)を使用して、ADODCで接続したODBCデータベースのデータを表示しています。しかし、ADODCを使用すると、スクロールする前後でクリック位置が異なる問題が発生します。
  • 具体的には、データ件数が40件で最大表示が30件の状態で、スクロール前後でクリックした位置(プロパティMouseRow)が変化します。スクロール前では正しくクリックした位置が表示されますが、スクロール後ではクリックした位置が1ずつずれて表示されます。
  • この問題はADODCを使用することによって発生するようです。対策としては、別の方法でデータを表示するか、ADODCを使用せずにデータを表示する方法を検討することが必要です。

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

  • ベストアンサー
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.2

そうですかー。ならばMSHFlexGridを使用せざるをえないですね。。。 要はクリックした正確な位置を取得したいのですよね? 回避方法ですが 1.Private宣言により変数2つを宣言 2.マウスダウンのイベントでMouseRow/MouseColを取得し、Private宣言した変数にセット 3.クリック時イベントでMouseRow/MouseColを取得しないで、Private宣言した変数を使用する はずしてたら、すいません。

bakuretsu
質問者

お礼

この通りやりましたが、うまくいきませんでした。 ただ、SQL文がまずかったらしく、構成を変えたら うまくいきました。結果オーライ!ありがとございます。

その他の回答 (1)

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.1

回答になってはないとは思うけど、、、 僕の場合はあまりFlexGridは使用してません。必要のない機能が多いからです。データを連結して表示するようなことをしてたり、Grid単位での色づけをしてるのであれば話は別ですが・・・ そんなことがないのであれば、DataGridを使用してみてはいかがでしょうか? ADOデータコントロールを使用してるみたいだし、DataGridとの相性も悪くないですよ。 どうしてもFlexGridじゃなきゃだめですか?

bakuretsu
質問者

補足

書き忘れてましたが、おっしゃる通り、データ内容で、3色に塗り分けていますので、FlexGridでないと・・・

関連するQ&A