2015-04-03 78 views
2

這是代碼將在打印預覽中添加保存工具提示,並將圖片框保存爲PDF格式。無法通過嵌套類型訪問外部類型的非靜態成員

class SavePrint : System.Windows.Forms.PrintPreviewDialog 
     { 
      public SavePrint() 
       : base() 
      { 
       if (this.Controls.ContainsKey("toolstrip1")) 
       { 

        ToolStrip tStrip1 = (ToolStrip)this.Controls["toolstrip1"]; 
        ToolStripButton button1 = new ToolStripButton(); 
        button1.Text = "Save"; 

        button1.Click += new EventHandler(SaveDocument); 
        button1.Visible = true; 
        tStrip1.Items.Add(button1); 


       } 
      } 

      public void SaveDocument(object sender, EventArgs e) 
      { 
       SaveFileDialog sfd = new SaveFileDialog(); 
       sfd.Title = "Save As PDF"; 
       sfd.Filter = "PDF|*.pdf"; 
       sfd.InitialDirectory = @"Desktop"; 

       if (sfd.ShowDialog() == DialogResult.OK) 
       { 
        Bitmap bmp = new Bitmap(pictureBox.Image);//GETTING THE ERROR HERE 
        Graphics gr = Graphics.FromImage(bmp); 

        PdfDocument doc = new PdfDocument(); 
        doc.Pages.Add(new PdfPage()); 
        XGraphics xgr = XGraphics.FromPdfPage(doc.Pages[0]); 

        xgr.DrawImage(bmp, 0, 0); 
        doc.Save(sfd.FileName); 
        doc.Close(); 
       } 
      } 
     } 

即時得到錯誤,在這條線「的BMP位圖=新位圖(pictureBox.Image)」我應該怎麼做,因此它可以繼承我的PictureBox?

+0

您可能想要發佈錯誤或異常詳細信息,以便有人可以提供一些幫助。你可能想檢查pictureBox.Image是否爲空。 – faljbour 2015-04-04 00:00:34

+0

哪裏是pictureBox定義? – kskyriacou 2015-04-04 00:08:17

+0

它位於公共部分類Form1中:Form – 2015-04-04 00:09:02

回答

1

更改您的SavePrint類的構造函數有以下特徵:

class SavePrint : System.Windows.Forms.PrintPreviewDialog 
    { 
     readonly Form1 parent; 
     public SavePrint(Form1 parent) 
      : base() 
     { 
      this.parent = parent; 

      // Remainder as before 
     } 
    } 

然後,當你建立你的SavePrint,通過相應的實例Form1到構造函數。

  SavePrint savePrint = new SavePrint(this); 

已經這樣做了,你SavePrint將能夠訪問其字段和屬性:

​​

順便說一句,你應該換你所有的disposablesusing語句,就像這樣:

  using (Bitmap bmp = new Bitmap(parent.pictureBox.Image)) 
      using (Graphics gr = Graphics.FromImage(bmp)) 
      { 
      } 
+0

謝謝!好東西.. – 2015-04-04 00:25:16

+0

@KevinRodriguez - 很樂意幫忙。 – dbc 2015-04-04 00:25:25

+0

如果沒有包裝,效果如何? – 2015-04-04 00:26:15

相關問題