两个PictureBox控件有两种不同的forms

我有两个不同forms的两个图片框。

  • Form1:firstpicturebox
  • form2:picturebox1

我想将firstpicturebox的图像传输到picturebox1。

所以,任何人都可以帮助并提供相同的解决方案。

您可以使用Form2 Constructor发送它

试试这个:

Form1中:

Form2 form2 = null; private void button1_Click(object sender, EventArgs e) { form2 = new Form2(pictureBox1.Image); form2.Show(); } 

表格2:

 public Form2(Image pic1) { InitializeComponent(); pictureBox1.Image = pic1; } 

你真的在一个问两个问题:

1 – 如何将一个PictureBox的内容放入另一个PictureBox?

2 – 如何从另一个表单访问一个表单的控件等?

问题1很简单: pictureBox1.Image = pictureBox2.Image;

问题2的答案也不难,但有很多方法可以做到,选择一个可能取决于你想用两种forms做什么。

基本方法是始终获得对其他表单的有效引用。

这是一个通用的方法:

  • 在每种forms中声明其他表单类的全局变量。
  • 让这些参考在适当的时刻指向另一种forms!
  • 制作您想要公开访问的任何控件,属性等; 对于控件,您可以创建一个额外的引用并填写它,或者您可以去设计器并将其范围从私有更改为公共。

什么是正确的时刻? 假设form1是在programm的启动时创建的,form2是由form1中的某个动作创建的,你可以在创建和显示时获得对form2的引用:

  form2 = new Form2(this); form2.Show(); 

这可以是单击按钮,甚至可以在form1的load事件中。

请注意,我已在构造函数中提交了this的引用! 这是将form1的引用传递给新表单的好方法。 因此,form2中的构造函数应如下所示:

 public Form2(Form1 form1_) { InitializeComponent(); form1 = form1_; } 

最后一步是将控件公开,您需要访问它们。 转到Designer.cs文件并更改声明

 private System.Windows.Forms.PictureBox pictureBox1; 

 public System.Windows.Forms.PictureBox pictureBox1; 

完成。

要么…

如果您有许多表单都需要访问一个PictureBox,您也可以尝试这样:在programm.cs文件中声明一个静态全局引用,如下所示:

 static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } public static PictureBox thePictureBox; 

然后在form1中填写引用

  Program.thePictureBox = pictureBox1; 

现在您也可以以其他所有forms引用它:

 myNextPictureBox42.Image = Program.thePictureBox.Image;