我正在使用WinForms。我有2个表格。在form1我有一个图片框,在form2我有一个打印按钮。我正在尝试构建一个应用程序,它将使用Form2从Form1中的图片框中打印图像。
我首先尝试制作一个面板并测试图片是否会以form1打印,但确实如此,但问题是将打印代码复制到form2时,代码不允许我访问form1中的图片框。
如何从Form2访问Form1中的图片框,因此我无法在图片框中打印图像。
我在this.pictureBox1下收到错误行。
窗体2
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
var bmp = new Bitmap(this.pictureBox1.Width, this.pictureBox1.Height);
this.pictureBox1.DrawToBitmap(bmp, this.pictureBox1.ClientRectangle);
e.Graphics.DrawImage(bmp, 25, 25, 800, 1050);
}
答案 0 :(得分:2)
您可以通过将作为属性的引用传递给Form2,使Form2中的PictureBox可用。
我不确定您是如何设置表单进行加载的。但是,如果您使用管理Form1和Form2的Main表单,则可以执行以下操作。如果您没有主表格,那么至少应该让您走上正确的轨道。
<强> Form1中强>
public PictureBox ThePicture
{
get {return this.pictureBox1; }
}
<强>窗体2 强>
private PictureBox _thePicture;
public PictureBox ThePicture
{
set { this._thePicture = value; }
get { return this._thePicture; }
}
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
if (this.ThePicture != null)
{
var bmp = new Bitmap(this.ThePicture.Width, this.ThePicture.Height);
this.ThePicture.DrawToBitmap(bmp, this.ThePicture.ClientRectangle);
e.Graphics.DrawImage(bmp, 25, 25, 800, 1050);
}
}
主要表格
Form1 form1 = new Form1();
Form2 form2 = new Form2();
form2.ThePicture = form1.ThePicture;
答案 1 :(得分:0)
尝试这样做:
//Tente fazer assim:
public Form1()
{
InitializeComponent();
}
public Image getImagePic
{
get
{
return this.pictureBox1.Image;
}
}