Form.AutoSize 属性

定义

根据 AutoSizeMode 的设置调整窗体的大小。Resize the form according to the setting of AutoSizeMode.

public:
 virtual property bool AutoSize { bool get(); void set(bool value); };
[System.ComponentModel.Browsable(true)]
public override bool AutoSize { get; set; }
member this.AutoSize : bool with get, set
Public Overrides Property AutoSize As Boolean

属性值

如果窗体将自动调整大小,则为 true;如果必须手动调整大小,则为 falsetrue if the form will automatically resize; false if it must be manually resized.

属性

示例

下面的示例演示使用自动调整大小以适合其内容的代码创建的窗体。The following example shows a form created using code that automatically resizes to fit its contents. 运行时,该窗体将显示一个 Label、一个用于输入 URL 的 TextBox 和一个 Button,用于在用户的默认 Web 浏览器中显示该 URL。When run, the form displays a Label, a TextBox for entering a URL, and a Button for displaying that URL inside of the user's default Web browser. 该示例使用 FlowLayoutPanel 将包含的控件逐个布局。The example uses a FlowLayoutPanel to lay out the contained controls one after the other. 它还会将 AutoSizeAutoSizeMode 设置为根据其窗体内容进行扩展和收缩。It also sets the AutoSize and AutoSizeMode to grow and shrink to fit the contents of its form.

private void Form1_Load(object sender, EventArgs e)
{
    this.AutoSize = true;
    this.AutoSizeMode = AutoSizeMode.GrowAndShrink;
    this.Text = "URL Opener";

    flowPanel = new FlowLayoutPanel();
    flowPanel.AutoSize = true;
    flowPanel.AutoSizeMode = AutoSizeMode.GrowAndShrink;
    this.Controls.Add(flowPanel);

    urlLabel = new Label();
    urlLabel.Name = "urlLabel";
    urlLabel.Text = "URL:";
    urlLabel.Width = 50;
    urlLabel.TextAlign = ContentAlignment.MiddleCenter;
    flowPanel.Controls.Add(urlLabel);

    urlTextBox = new TextBox();
    urlTextBox.Name = "urlTextBox";
    urlTextBox.Width = 250;
    flowPanel.Controls.Add(urlTextBox);

    urlButton = new Button();
    urlButton.Name = "urlButton";
    urlButton.Text = "Open URL in Browser";
    urlButton.Click += new EventHandler(urlButton_Click);
    flowPanel.Controls.Add(urlButton);
}

void urlButton_Click(object sender, EventArgs e)
{
    try
    {
        Uri newUri = new Uri(urlTextBox.Text);
    }
    catch (UriFormatException uriEx)
    {
        MessageBox.Show("Sorry, your URL is malformed. Try again. Error: " + uriEx.Message);
        urlTextBox.ForeColor = Color.Red;
        return;
    }
    
    // Valid URI. Reset any previous error color, and launch the URL in the 
    // default browser.
    // NOTE: Depending on the user's settings, this method of starting the
    // browser may use an existing window in an existing Web browser process.
    // To get around this, start up a specific browser instance instead using one of
    // the overloads for Process.Start. You can examine the registry to find the
    // current default browser and launch that, or hard-code a specific browser.
    urlTextBox.ForeColor = Color.Black;
    Process.Start(urlTextBox.Text);
}
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Me.AutoSize = True
    Me.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink
    Me.Text = "URL Opener"

    flowPanel = New FlowLayoutPanel()
    flowPanel.AutoSize = True
    flowPanel.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink
    Me.Controls.Add(flowPanel)

    urlLabel = New Label()
    urlLabel.Name = "urlLabel"
    urlLabel.Text = "URL:"
    urlLabel.Width = 50
    urlLabel.TextAlign = ContentAlignment.MiddleCenter
    flowPanel.Controls.Add(urlLabel)

    urlTextBox = New TextBox()
    urlTextBox.Name = "urlTextBox"
    urlTextBox.Width = 250
    flowPanel.Controls.Add(urlTextBox)

    urlButton = New Button()
    urlButton.Name = "urlButton"
    urlButton.Text = "Open URL in Browser"
    flowPanel.Controls.Add(urlButton)
End Sub


Private Sub urlButton_Click(ByVal sender As Object, ByVal e As EventArgs) Handles urlButton.Click
    Try
        Dim newUri As New Uri(urlTextBox.Text)
    Catch uriEx As UriFormatException
        MessageBox.Show(("Sorry, your URL is malformed. Try again. Error: " + uriEx.Message))
        urlTextBox.ForeColor = Color.Red
        Return
    End Try

    ' Valid URI. Reset any previous error color, and launch the URL in the 
    ' default browser.
    ' NOTE: Depending on the user's settings, this method of starting the
    ' browser may use an existing window in an existing Web browser process.
    ' To get around this, start up a specific browser instance instead using one of
    ' the overloads for Process.Start. You can examine the registry to find the
    ' current default browser and launch that, or hard-code a specific browser.
    urlTextBox.ForeColor = Color.Black
    Process.Start(urlTextBox.Text)
End Sub

注解

使用 AutoSize 强制调整窗体大小以容纳其内容。Use AutoSize to force a form to resize to fit its contents.

窗体不会在 Visual Studio 窗体设计器中自动调整大小,而不管 AutoSizeAutoSizeMode 属性的值。A form does not automatically resize in the Visual Studio forms designer, regardless of the values of the AutoSize and AutoSizeMode properties. 窗体根据这两个属性的值在运行时正确地调整大小。The form correctly resizes itself at run time according to the values of these two properties. 与此相反,自定义 UserControl 会在设计时和运行时自动调整自身的大小。By contrast, a custom UserControl automatically resizes itself both at design time and at run time.

使用 AutoSize时,会考虑 MinimumSizeMaximumSize 属性,但会忽略 Size 属性的当前值。When using AutoSize, the MinimumSize and MaximumSize properties are respected, but the current value of the Size property is ignored. 使用 AutoSizeAutoSizeMode 还会将 AutoScroll 属性呈现为多余的,因为没有办法缩小窗体以便在视图中隐藏其包含的控件。Using AutoSize and AutoSizeMode also renders the AutoScroll property superfluous, as there is no way to shrink the form to hide its contained controls from view.

有关 AutoSize true时窗体的行为方式的信息,请参阅 AutoSizeMode 枚举。See the AutoSizeMode enumeration for information on how a form behaves when AutoSize is true.

适用于