我想使用text2,textbox2和Form2中的按钮调整Form1(picturebox1)中的图片框。
首先我在Form1.Designer.cs中创建了这个:
public System.Windows.Forms.PictureBox picturebox1;
在Form2.cs之后(提交按钮):
private void button1_Click(object sender, EventArgs e)
{
Form1 frm1 = new Form1();
int height = int.Parse(textbox1.Text);
frm1.picturebox1.Height = height;
int width = int.Parse(textbox2.Text);
frm1.picturebox1.Width = width;
}
但这不会改变picturebox1的大小......
答案 0 :(得分:0)
这是你的问题:
Form1 frm1 = new Form1();
您正在创建Form1
的新实例。因此,您成功修改了新实例上的值,但对您已有的实例不执行任何操作。
Form2
需要对现有实例的引用,而不是创建新实例。例如,您可以在其构造函数上将该实例提供给Form2
。像这样:
private Form1 Form1Instance { get; set; }
public Form2(Form1 form1Instance)
{
this.Form1Instance = form1Instance;
}
然后,当您从Form2
创建Form1
的实例时,您将为其提供所需的参考:
var form2 = new Form2(this);
form2.Show();
然后Form2
中的任何代码都可以对Form1
的实例执行操作。像这样:
private void button1_Click(object sender, EventArgs e)
{
int height = int.Parse(textbox1.Text);
this.Form1Instance.picturebox1.Height = height;
int width = int.Parse(textbox2.Text);
this.Form1Instance.picturebox1.Width = width;
}