我是一名从事Windows窗体应用程序的学生。在这个应用程序中,我有一个表单,如弹出窗口,显示标签。我想根据标签的大小更改窗口的大小。例如,如果标签有3行,则应自动显示所有行。但是现在它只显示一行。我该如何解决这个问题?
答案 0 :(得分:2)
您需要使用弹出窗体中标签的字体设置来计算文本的大小。以下是弹出窗体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);
弹出窗体将缩放到标签的大小。尝试调整字体,更改文本等 - 应该正常工作。
希望这有帮助!