3

true とに設定することで、最初はその内容 (UserControl場所 0、0 に配置) に合わせてサイズを変更するフォームがあります。AutoSizeAutoSizeModeGrowAndShrink

初期化後、フォームが制御を取得し、 AutoSizing をオフにして UserControl を作成しDock.Fillます。

問題は、 をオフAutoSizeにすると、フォームが現在のサイズを維持するのではなく、以前のサイズに戻ることです。AutoSize をオフにする前に Size を保存し、後で復元することはできますが、それでもサイズ変更イベントが発生します (フォームがちらつくことがわかります)。

フォームを現在のサイズに保ち、オフにしたときにサイズ変更イベントが発生しないようにする方法はありますAutoSizeか?

4

2 に答える 2

4

AutoSizeプロパティをオフにする前に、フォームのMinimumSizeプロパティを設定してみてください。

this.MinimumSize = this.Size;
this.AutoSize = false;
于 2012-12-20T14:37:24.553 に答える
0

私は同様の問題を抱えていました - ボタンが押されたときに AutoSize を使用してフォームを拡大または縮小し、ユーザーが手動でサイズを変更できるようにしたかったのです。

現在、私の解決策はボタンイベントにあります:

    Me.AutoSize = True
    uiStopAutoSizeTimer.Start()

次に、AutoSize をオフにし、AutoSize がフォームで使用していたサイズを保持する別の方法を用意します。

Private Sub uiStopAutoSizeTimer_Tick(sender As System.Object, e As System.EventArgs) Handles uiStopAutoSizeTimer.Tick
    Me.SuspendLayout()
    Dim tempSize = Me.Size
    Me.AutoSize = False
    Me.Size = tempSize
    uiStopAutoSizeTimer.Enabled = False
    Me.ResumeLayout()
End Sub

それは機能しますが、ただぎこちなく感じます。

于 2014-07-09T17:54:44.297 に答える