解决方案 »

  1.   

    不显示出来,你就要把实际内容绘制到bitmap上输出
    或者取消隐藏,然后在设置隐藏
      

  2.   


    现在处理就是要不显示,所以放后台处理。请问怎么把实际内容绘制到bitmap上输出?
      

  3.   

    先control.CreateControl()
    再control.DrawToBitmap
      

  4.   

    《C#入门经典》 GDI+章节关于双倍缓冲的例子。
      

  5.   

    #region Interop    [DllImport("user32.dll")]
        static extern IntPtr SendMessage(IntPtr hWnd, uint msg, IntPtr hdc, PRF_FLAGS drawingOptions);    const uint WM_PRINT = 0x317;    [Flags]
        enum PRF_FLAGS : uint
        {
            CHECKVISIBLE = 0x01,
            CHILDREN = 0x02,
            CLIENT = 0x04,
            ERASEBKGND = 0x08,
            NONCLIENT = 0x10,
            OWNED = 0x20
        }    #endregion    public static Image CaptureImage(this Control control)
        {
            Image img = new Bitmap(control.Width, control.Height);
            using (Graphics g = Graphics.FromImage(img))
            {
                SendMessage(
                   control.Handle,
                   WM_PRINT,
                   g.GetHdc(),
                   PRF_FLAGS.CLIENT | PRF_FLAGS.NONCLIENT | PRF_FLAGS.ERASEBKGND);
            }
            return img;
        }试试~~
      

  6.   

    不显示就在后台绘制成bmp就好了。
    基本的方法就是下面这样了,
    Bitmap bmp = new Bitmap();
    bmp.Graphics.DrawString()....
    drawstring就是画文本的,drawimage就是画图片的。
      

  7.   


    把控件放在不可见的区域可以实现,但是控件的Visible属性设置成False的话就不行。谢谢,可以解决我的需求!!