在C#.NET中设置最小窗口大小

Dai*_*Dai 28 .net c# winforms

我在我正在处理的C#应用​​程序中设置窗口的最小大小时遇到​​问题.我在表单的构造函数中尝试了这段代码:

this.MinimumSize.Width = 800;
this.MinimumSize.Height = 600;
Run Code Online (Sandbox Code Playgroud)

但是编译器说:

无法修改'System.Windows.Forms.Control.MinimumSize'的返回值,因为它不是变量

任何人都可以为我解释这个问题吗?

编辑:

使用:

this.MinimumSize = new Size(800,600);
Run Code Online (Sandbox Code Playgroud)

得到:

 error CS0118: 'System.Windows.Forms.Form.Size' is a 'property' but is used like a 'type'
Run Code Online (Sandbox Code Playgroud)

对不起,我忘了提到我已经尝试过了.还忘了提到我没有使用Visual Studio.

SLa*_*aks 48

由于Size是一个结构,你不能这样做.
相反,您需要为Size属性分配一个新值,如下所示:

this.MinimumSize = new Size(800, 600);
Run Code Online (Sandbox Code Playgroud)

编辑您的编译器是错误的; 这让Size班级与Control.Size财产混淆了.

要解决此不公正的错误,您需要使用命名空间限定类型:

this.MinimumSize = new System.Drawing.Size(800, 600);
Run Code Online (Sandbox Code Playgroud)

或者你忘记了using System.Drawing.

  • @Dai:因为需要绘制Windows窗体.http://msdn.microsoft.com/en-us/library/system.drawing.aspx (6认同)

Den*_*sky 6

你应该使用这样的东西:

this.MinimumSize = new Size(100, 100);

WidthHeight用于获取现有值而不是设置它们.

如果你去定义MinimumSize,你会看到:

public override Size MinimumSize { get; set; }

再次确认即使您决定为其设置值,也必须传递实际Size实例.Width并且Height是与Size实例严格关联的属性.