2014-06-06 163 views
1

在某些環境(如Office宏環境或Visual Studio)中,有些設計人員可以顯示預覽,您可以將項目拖放到該預覽上。它們使用與OS其餘部分相同的主題呈現。我不是想創建一個MDI,而是以相同的形式繪製一個窗體。在窗口內繪製Windows窗體

例子:

VBA drawing form

在C#中,我將如何去實現類似的功能?

回答

1

你可以使用這個方法不錯,使一個窗口2平局本身到目標位:

form2.DrawToBitmap(tagetBmp, new Rectangle(0, 0, form2.Size.Width, form2.Size.Height)); 

爲了使它工作,你將創建一個表格來顯示和調用這個方法就可以了。這將包括所有的控制等,但如果你想清空你需要正確的比例只是一個空洞的形式..

下面是測試,繪製一個窗口到自身:

private void button1_Click(object sender, EventArgs e) 
{ 
    Size oldSize = this.Size; 
    Size newSize = new Size(this.Width/4, this.Height/4); 
    Bitmap targetBmp = new Bitmap(newSize.Width, newSize.Height); 
    this.Size = newSize; 
    button1.Hide(); 
    this.DrawToBitmap(targetBmp, new Rectangle(Point.Empty, newSize)); 
    this.Size = oldSize; 
    using (Graphics G = this.CreateGraphics()) 
    { 
     G.DrawImage(targetBmp, 0, 0); 
    } 
    button1.Show(); 
}