2012-06-05 120 views
2

我有一個用戶控件,顯示車牌號(它包含背景圖像和一些文本框),我使用DrawToBitmap()方法來獲取該控件的位圖並顯示我的窗體上的位圖,它在Windows 7上工作正常,但在Windows XP Service Pack 3中只繪製背景圖像,並且未繪製文本框中的文本,我該怎麼辦?在Windows XP上DrawToBitmap

var clt = new ControlLisenceTouch();Bitmap b = new Bitmap(clt.Width, clt.Height); 
clt.License = License.FromCar(someCar); 
clt.Invalidate(true); 
clt.DrawToBitmap(b, Rectangle.FromLTRB(0, 0, clt.Width, clt.Height)); 
pictureBox1.Image = b; 
+0

我曾在Windows XP中使用這種類似的一些怪異的行爲。我很遺憾沒有找到它的解決方法:( – GETah

+0

我會在你的UserControl上投入一個實際上包含RichTextBox的支持。是的,不支持該控件。 –

+0

@HansPassant:NO,它只包含TextBox,不包含RichTextBox。控制源代碼。 – HPT

回答

0

這個人有同樣的問題,雖然答案不完美,但它確實爲他做了。這裏最大的問題是,如果另一個窗口覆蓋了您的控件,那麼該窗口也會顯示出來。看看我的回答,第三個編輯顯示拍攝屏幕截圖,並從中裁剪出一個控件。

How can I get a screenshot of control? DrawToBitmap not working

根據http://msdn.microsoft.com/en-us/library/system.windows.forms.control.drawtobitmap.aspx
的Windows XP SP3完全支持