MSFlexGrid でセルが入るように Width を決めたい

解決


ジム  2004-09-05 13:26:39  No: 116184

MSFlexGrid で表示しているセルにあわせて Widthを決めたいのですが、
CellWidth や ColWidth や GridLineWidth をあわせて計算してもセルがぴたっ
と内部領域に収まってくれません。
        Colw = MSFlexGrid1.ColWidth(0) * MSFlexGrid1.Cols
        MSFlexGrid1.Width = Colw + MSFlexGrid1.GridLineWidth * PixelX * (MSFlexGrid1.Cols + 1)
        Roww = MSFlexGrid1.RowHeight(0) * MSFlexGrid1.Rows 
    MSFlexGrid1.Height = Roww + MSFlexGrid1.GridLineWidth * PerPixelY * (MSFlexGrid1.Rows + 1)


ジム  2004-09-05 13:34:45  No: 116185

続き

    と記述しています。
    Widthはよいですが、Height の方がうまく収まってくれません。
    ColWidth も RowHeight も全て同じサイズで作っています。
    (2行目の PixelXは PerPixelX です)
    ぴたっと収まる方法があったら教えて下さい。


花ちゃん  2004-09-06 23:57:26  No: 116186

下記ではどうですか?

    For i = 0 To MSFlexGrid1.Rows - 1
        h = h + MSFlexGrid1.RowHeight(i)
    Next i
    'スクロールバーの高さ(98)をプラス
    MSFlexGrid1.Height = h + 98

VB6.0(SP5) WinXP では一応OKでした。


ジム  2004-09-07 08:24:46  No: 116187

スクロールバーなしの場合は
    MSFlexGrid1.Height = h + 98
    でOKでした。この98は計算で求められないのしょうか?
    なんか今一つ納得いきません。


花ちゃん  2004-09-07 19:30:31  No: 116188

>スクロールバーなしの場合は
>    MSFlexGrid1.Height = h + 98
>    でOKでした。この98は計算で求められないのしょうか?
>    なんか今一つ納得いきません。

何が納得いかないか知りませんが、スクロールバーの高さを求めたいなら
API関数を使って求めて下さい(自分で調べて)


花ちゃん  2004-09-07 20:07:48  No: 116189

訂正
スクロールバーの高さではなく  枠線の幅ですね。


ジム  2004-09-09 10:45:51  No: 116190

API関数を調べたけどわかりませんでした。
それで、市販のVS−FLEXGRID  PROとかいうコンポーネントを買って
試したところ問題は解決しました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加