- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:階層フレキシブルコントロールで質問です。)
VB6の階層フレキシブルコントロールでADODCのスクロール位置の問題が発生する
このQ&Aのポイント
- VB6の階層フレキシブルグリッドコントロール(MSHFLEXGRID)を使用して、ADODCで接続したODBCデータベースのデータを表示しています。しかし、ADODCを使用すると、スクロールする前後でクリック位置が異なる問題が発生します。
- 具体的には、データ件数が40件で最大表示が30件の状態で、スクロール前後でクリックした位置(プロパティMouseRow)が変化します。スクロール前では正しくクリックした位置が表示されますが、スクロール後ではクリックした位置が1ずつずれて表示されます。
- この問題はADODCを使用することによって発生するようです。対策としては、別の方法でデータを表示するか、ADODCを使用せずにデータを表示する方法を検討することが必要です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
そうですかー。ならばMSHFlexGridを使用せざるをえないですね。。。 要はクリックした正確な位置を取得したいのですよね? 回避方法ですが 1.Private宣言により変数2つを宣言 2.マウスダウンのイベントでMouseRow/MouseColを取得し、Private宣言した変数にセット 3.クリック時イベントでMouseRow/MouseColを取得しないで、Private宣言した変数を使用する はずしてたら、すいません。
その他の回答 (1)
- TAGOSAKU7
- ベストアンサー率65% (276/422)
回答No.1
回答になってはないとは思うけど、、、 僕の場合はあまりFlexGridは使用してません。必要のない機能が多いからです。データを連結して表示するようなことをしてたり、Grid単位での色づけをしてるのであれば話は別ですが・・・ そんなことがないのであれば、DataGridを使用してみてはいかがでしょうか? ADOデータコントロールを使用してるみたいだし、DataGridとの相性も悪くないですよ。 どうしてもFlexGridじゃなきゃだめですか?
質問者
補足
書き忘れてましたが、おっしゃる通り、データ内容で、3色に塗り分けていますので、FlexGridでないと・・・
お礼
この通りやりましたが、うまくいきませんでした。 ただ、SQL文がまずかったらしく、構成を変えたら うまくいきました。結果オーライ!ありがとございます。