• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【vb6】フレックスグリッドの余白部分)

【VB6】フレックスグリッドの余白部分の使い方について

このQ&Aのポイント
  • MSFlexGridの余白部分について質問があります。現在、グリッドにデータを設定していますが、行の無い余白部分をクリックした時にカレント行の選択を解除したいです。
  • 余白部分をクリックした時にカレント行の選択を解除する方法について検討しています。しかし、グリッドには.Hittestのプロパティがなく、余白部分が押されたことを知る方法が分かりません。
  • MSFlexGridの余白部分をクリックした時にカレント行の選択を解除する方法について教えてください。

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

  • ベストアンサー
  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.1

マウスが押されたときに、どこで押されたかを調べておいて、余白であったら .rowや.rowselなどを強制的に指定しちゃうという手があるね。 下記コードはそのものではないけどきっと参考になるでしょう。 Private mblnIgnoreDblClick As Boolean Private Sub MSFlexGrid1_DblClick() If Not mblnIgnoreDblClick Then Debug.Print MSFlexGrid1.MouseRow, MSFlexGrid1.MouseCol End If End Sub Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) mblnIgnoreDblClick = (y + 60) > (MSFlexGrid1.CellTop + MSFlexGrid1.CellHeight) End Sub

参考URL:
http://www.vbforums.com/showthread.php?t=355726
sakruaw
質問者

お礼

回答ありがとうございます。 上記のコードを使わせて頂いた所、ちゃんと上手くいきました。 やはり質問のようなことを実現するプロパティは用意されていないのでしょうか。 あまりややこしい手段を取りたくないので、これで良いかちょっと考えています。 もう少し分かりやすい方法がありましたら教えてください。

その他の回答 (1)

  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.2

単純に座標計算しか思い浮かびません。 セル幅×セル数の単純計算とマウスの座標 x y だけだと、 スクロールできるほどデータが多い場合に判定できないので、 表示しているセルの情報も考慮しないといけないのかな。 TopRow とか LeftCol ?・・・固定セルも考慮に入れないと いけないのかも? #1は 余白部分を選択してもカレントセルが動く事を利用して その下方向範囲外だったら。。。というアイデアですね。 右方向範囲外の条件を加えるだけで、とりあえずは それっぽく動きそうです。穴が無いとは言い切れないけど、 ざっと動かした限りでは問題なさそうでした。 カレントセルの動きをプログラムで制限してるとかだと だめだけどね。

sakruaw
質問者

お礼

>単純に座標計算しか思い浮かびません。 やはりそうなんですか・・・ 自分も散々探して回っているのですが、思うようなものは見つかっていません。 座標から求めるのがもっとも正しい手法なのかもしれないですね。 回答ありがとうございます。

関連するQ&A