How can I get an image of control to another control?
<p>Look this class:</p>

<pre><code>public class ControlContainer : Control
{
    public ControlContainer() { DoubleBuffered = true; SetStyle(ControlStyles.SupportsTransparentBackColor, true); }
    Control _Control;
    public Control Control { get { return _Control; } set { _Control = value; SetHandlers(); } }

    public void SetHandlers()
    {
        if (_Control == null) return;
        Region = _Control.Region;
        Size = _Control.Size;
        _Control.Invalidated += new InvalidateEventHandler(_Control_Invalidated);


    }

    void _Control_Invalidated(object sender, InvalidateEventArgs e)
    {

        Invalidate();
    }

    protected override void OnPaint(PaintEventArgs e)
    {
        if (_Control == null) return;
        Bitmap p = new Bitmap(_Control.Width, _Control.Height);


        _Control.DrawToBitmap(p, new Rectangle(0, 0, _Control.Width, _Control.Height));
        e.Graphics.DrawImage((Image)p, 0, 0);
        base.OnPaint(e);
    }


}
</code></pre>

<p>As you see the mission of this control is to get an image of another control and draws it.
But if we handled a TextBox control named 'textBox1' as the following:</p>

<p>Suppose we have added a new instance of the type ControlContainer above and its name is controlContainer1 and we assign the value of the property 'Control' of controlContainer1 to textBox1.</p>

<p>Why if I write something in textBox1 the event 'Invalidated' doesn't fire? and why the pointer of the writing "|" doesn't appear by the method 'DrawToBitmap"?</p>
