初めて質問させて頂きます。
現在VB6.0を使いDBからデータを取得しMSFlexGridにデータを
表示させていて各行をクリックまたはフォーカスがあたっている
場所でEnterを押すとその行の詳細を見れるプログラムを組んで
いるのですが、余白の部分でクリックをすると一番下の行のRowを
取得してしまい表示させたくないのに一番下のデータの詳細を表示
させてしまいます。
見出しの部分についてはMouseDownイベントでMouseRowを取得することに
よって「0」が取得できたので回避できたのですが、余白の部分をどうしても
回避できないのでお知恵を拝借できたらと思い書き込みいたしました。
よろしくお願い致します。
MSFlexGridにデータを表示している範囲は分かる訳ですから
クリックされた Row , Col を取得して、その値が
MSFlexGridにデータを表示している範囲内で無ければ
詳細を表示しない...ではダメ?
固定行と固定セルが各1なら
Row , Col
1 , 1 が左上角。
1 , .Cols-1 が右上角。
.Rows , 1 が左下角。
.Rows , .Cols-1 が右下角。....かな
IF文で判定すれば良いかと。
申し訳ありません。
書き方が不適切でした。
Gridはデータがある分だけ行を表示しているので余白というのは
空白のセルではなく灰色の部分(バックカラー?)の事です。
余白の部分でクリックするとデータがある一番下(10件データあると
してRowの値は「10」を取得してしまう)のRowを取得してしまうのです。
ですからIf文で比較したくてもRowの値(10)は現実に存在しているので
弾く事ができないのです。
文章がわかりにくいかと思いますができるだけこちらの現状の詳細に
お答えしますので意味がわからないという方は指摘お願い致します。
お役に立てそうに無いです。
苦肉の策で最下段にダミー行をおいて
取得されたROWの値がデータがある一番下なら
表示させないようにするとか....。
無駄なエリアの無いMSFlexGridに表示し直すとか。
ツイート | ![]() |