如何在运行时更改窗体大小?
我看过示例,但每个都需要Form.Size属性。此属性可以像这样设置:http://msdn.microsoft.com/en-us/library/25w4thew.aspx#Y456, 但我已经在可视化工具中创建了我的申请表格,表格就是这样创建的:
static void Main()
{
Application.Run(new Form());
}
如何现在设置Size
属性,然后按Form.Height
和Form.Width
方法进行更改?
答案 0 :(得分:33)
您无法更改表单的“宽度”和“高度”属性,因为它们是只读的。您可以像这样更改表单的大小:
button1_Click(object sender, EventArgs e)
{
// This will change the Form's Width and Height, respectively.
this.Size = new Size(420, 200);
}
答案 1 :(得分:9)
如果您想以编程方式操作表单,最简单的解决方案是保留对它的引用:
static Form myForm;
static void Main()
{
myForm = new Form();
Application.Run(myForm);
}
然后,您可以在运行时使用它来更改大小(或者您想要做的任何其他操作)。虽然Arrow points out为{{3}},但您无法直接设置Width
和Height
,但必须设置Size
属性。
答案 2 :(得分:4)
为了调用它,您必须存储对表单的引用并将引用传递给run方法。然后你可以在动作处理程序中调用它。
public partial class Form1 : Form
{
public void ChangeSize(int width, int height)
{
this.Size = new Size(width, height);
}
}
答案 3 :(得分:1)
您可以通过在要更改尺寸的地方执行以下操作来更改表单的高度(替换为您的尺寸的“10”):
this.Height = 10;
这也可以用宽度来完成:
this.Width = 10;
答案 4 :(得分:0)
这样的事情对我来说很好:
public partial class Form1 : Form
{
Form mainFormHandler;
...
}
private void Form1_Load(object sender, EventArgs e){
mainFormHandler = Application.OpenForms[0];
//or instead use this one:
//mainFormHandler = Application.OpenForms["Form1"];
}
然后您可以更改大小如下:
mainFormHandler.Width = 600;
mainFormHandler.Height= 400;
或
mainFormHandler.Size = new Size(600, 400);
另一个有用的一点是,如果您想要从另一个mainForm
更改Form
的大小,您只需使用属性来设置大小。
答案 5 :(得分:0)
作为上述答案的补充;如果需要创建较小的Form,请不要忘记Form MinimumSize属性。
波纹管示例:
private void SetDefaultWindowSize()
{
int sizeW, sizeH;
sizeW = 180;
sizeH = 100;
var size = new Size(sizeW, sizeH);
Size = size;
MinimumSize = size;
}
private void SetNewSize()
{
Size = new Size(Width, 10);
}