コントロールののリサイズ


VBパダワン  2007-03-15 03:23:15  No: 135764

フォームのサイズが変更された場合、そのフォームに配置しているコントロールも
リサイズをしたいと思っています。
現在は以下のようにしようと思っていますが、この場合、フォームを最小化したり、
配置してあるコントロールが見えなくなるまで小さくすると、
次にフォームを大きくした場合、フォームとコントロールの余白が無くなり、
コントロールの右と下がフォームの右と下にそれぞれくっつくような形でリサイズします。

これでは格好が悪いので、もっといい方法があればご教授願いします。
APIを使ってできたりしないでしょうか?

    Global intFormH As Integer
    Global intFormW As Integer

Private Sub Form_Resize()

    Dim intH As Integer
    Dim intW As Integer

    intH = intFormH - Form1.Height
    intW = intFormW - Form1.Width

    If (ListView_1.Height - intH) > 0 Then
        ListView_1.Height = ListView_1.Height - intH
    Else
        ListView_1.Height = 1
    End If
    If (ListView_1.Width - intW) > 0 Then
        ListView_1.Width = ListView_1.Width - intW
    Else
        ListView_1.Width = 1
    END IF

    intFormH = Main.Height
    intFormW = Main.Width

End Sub


VBパダワン  2007-03-15 03:26:45  No: 135765

書き忘れました。
開発環境は、VP6(SP6)です。
よろしくお願いします。


ヤマ@文系  2007-03-15 06:04:08  No: 135766

上の処理だと、前回とリサイズ後の差分を
Listviewの縦横に少しづつプラスしているという
よくわからない処理になっているので。。
右下にくっつけたくないというのであれば、
この程度でよいのではないでしょうか?

    If (Me.ScaleHeight - 300) > 0 Then
        ListView_1.Height = Me.ScaleHeight - 300
    Else
        ListView_1.Height = 1
    End If
    If (Me.ScaleWidth - 300) > 0 Then
        ListView_1.Width = Me.ScaleWidth - 300
    Else
        ListView_1.Width = 1
    End If


VBパダワン  2007-03-16 18:38:24  No: 135767

>ヤマ@文系さま
レスありがとうございます。
お返事が遅れまして申し訳ありません。
無事に綺麗にリサイズできるようになりました。
ありがとうございました。


VBパダワン  2007-03-16 20:53:55  No: 135768

また解決チェック入れ忘れです。
申し訳ない。


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

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






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