c#自动更改窗口大小

本文关键字:窗口大小 | 更新日期: 2023-09-27 18:03:48

我是一个在windows窗体应用程序工作的学生。在这个应用程序中,我有一个窗体,像一个弹出窗口,显示一个标签。我想根据标签的大小来改变窗口的大小。例如,如果标签有3行,它应该自动显示所有的行。但是现在它只显示了一行。我该如何解决这个问题?

c#自动更改窗口大小

您需要使用弹出式表单中标签的字体设置来计算文本的大小。下面是弹出式表单的Load事件的一个示例:

    private void Popup_Load(object sender, EventArgs e)
    {
        messageLabel.Text = TextToShow;
        Graphics gfx = this.CreateGraphics();
        SizeF textSize = gfx.MeasureString(messageLabel.Text, messageLabel.Font);
        Size borders = this.Size - this.ClientSize;
        this.Size = new Size((int)textSize.Width, (int)textSize.Height) + borders;            
    }

这段代码假定您有一个名为TextToShow的属性,用于将要显示的消息传递给表单:

        public string TextToShow { get; set; }

您可以像这样打开弹出式表单:

        Popup popup = new Popup();
        popup.TextToShow = "Test'nMult-line popup window'n'nLine4'n'nLine 6";
        popup.ShowDialog(this);

弹出式表单将按标签的大小缩放。尝试调整字体,改变文本等-应该工作正常。

希望这对你有帮助!