C# 它没有';t在com组件上绘制

C# 它没有';t在com组件上绘制,c#,winforms,C#,Winforms,我有一个图形com组件从我们的供应商。我把它放在主窗体中,想在上面画画。但MainForm_paint不会在该组件上方绘制。有没有办法在那个部件上面作画 C#,WinForms,2.0 代码: 它没有填满任何东西,也没有划出界限。 ComComponent.DockStyle=DockStyle.Fill不能在组件上方绘制。ActiveX有自己的绘制消息。如果绘制事件在容器(winform)中可见,则可以覆盖它。如果可以将控件的背景设置为透明,请执行此操作。否则,可以对控件的窗口进行子类化,并忽

我有一个图形com组件从我们的供应商。我把它放在主窗体中,想在上面画画。但MainForm_paint不会在该组件上方绘制。有没有办法在那个部件上面作画

C#,WinForms,2.0

代码:

它没有填满任何东西,也没有划出界限。
ComComponent.DockStyle=DockStyle.Fill

不能在组件上方绘制。ActiveX有自己的绘制消息。如果绘制事件在容器(winform)中可见,则可以覆盖它。

如果可以将控件的背景设置为透明,请执行此操作。否则,可以对控件的窗口进行子类化,并忽略WM_ERASEBKGND(或任何它的名称)

或者,如果您确切知道要绘制的位置,可以在ActiveX控件上方放置一个非矩形窗口


编辑:添加了最后一条建议

您是在谈论ActiveX吗?@Oded,我已将其添加到问题文本中@阿森尼,是的。这个词是‘组件’是的,它有自己的绘画信息。我将代码放在它上面,但没有效果=\n我有一个名为CtlBackColor的属性。我可以将它的值设置为透明,但它不会改变任何东西。
    void MainForm_Paint(object sender, PaintEventArgs e)
    {
            using (SolidBrush b2 = new SolidBrush(Color.Red))
            {
                e.Graphics.FillRectangle(b2, this.ClientRectangle);
            }

            Pen pen = new Pen(Color.Black, 2.0f);
            e.Graphics.DrawLine(pen, 0, 0, 100, 100);
            pen.Dispose();
    }