如何使用文本框手动设置另一个表单的位置?

时间:2012-11-03 12:19:47

标签: c# winforms

在Form1上我有2个文本框,我想用那些编辑Form2的位置。 (textbox1 = X,textbox2 = Y)

非常感谢!

以下是我所做的代码:

   private void button8_Click(object sender, EventArgs e)
   {
       frm2 = new Form2();
       frm2.Top = int.Parse(textBox2.Text);
       frm2.Left = int.Parse(textBox3.Text);
   }

它不工作,我想我应该在form2中创建一个方法?对不起我的无知

1 个答案:

答案 0 :(得分:1)

每个Form-Object都具有在屏幕上定义其位置和尺寸的属性。

参考MSDN文档http://msdn.microsoft.com/en-us/library/system.windows.forms.form.aspx,这些属性是

  • int Form.Top(获取或设置控件上边缘与其容器客户区上边缘之间的距离(以像素为单位)。)

  • int Form.Left(获取或设置控件左边缘与其容器客户区左边缘之间的距离(以像素为单位)。)

  • int Form.Width(获取或设置控件的宽度。)

  • int Form.Height(获取或设置控件的高度。)

假设你有两个名为form1和form2的表单对象,并且你想通过在form1上的textfields中输入值来修改form2的属性,你只需要做类似的事情:

// inside form1
// assuming you have textfields for each position/dimension property

form2.Top = int.Parse(textfield_Top.Text);
form2.Left = int.Parse(textfield_Left.Text);
form2.Width = int.Parse(textfield_Width.Text);
form2.Height = int.Parse(textfield_Height.Text);

请注意,您希望将整数值(数字)传递给form2的属性,但string TextBox.Text属性的类型为string。您可能希望将字符串中的强制转换应用于int,这是执行此操作的默认方式 - 如上所示使用

int int.Parse(string s)