フォームのサイズが変更された場合、そのフォームに配置しているコントロールも
リサイズをしたいと思っています。
現在は以下のようにしようと思っていますが、この場合、フォームを最小化したり、
配置してあるコントロールが見えなくなるまで小さくすると、
次にフォームを大きくした場合、フォームとコントロールの余白が無くなり、
コントロールの右と下がフォームの右と下にそれぞれくっつくような形でリサイズします。
これでは格好が悪いので、もっといい方法があればご教授願いします。
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
書き忘れました。
開発環境は、VP6(SP6)です。
よろしくお願いします。
上の処理だと、前回とリサイズ後の差分を
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
>ヤマ@文系さま
レスありがとうございます。
お返事が遅れまして申し訳ありません。
無事に綺麗にリサイズできるようになりました。
ありがとうございました。
また解決チェック入れ忘れです。
申し訳ない。
ツイート | ![]() |