Он не рисует над ком-компонентом - PullRequest
0 голосов
/ 30 июня 2010

У меня есть графический компонент от нашего поставщика. Я поместил его в основной форме и хочу рисовать над ним. Но MainForm_paint не рисует над этим компонентом. Есть ли способ рисовать над этим компонентом?

C #, WinForms, 2.0

код:

    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();
    }

Это ничего не заполняло и не рисовало линию. ComComponent.DockStyle = DockStyle.Fill

Ответы [ 2 ]

0 голосов
/ 30 июня 2010

Если вы можете установить прозрачный фон элемента управления, сделайте это. В противном случае может оказаться возможным создать подкласс окна элемента управления и игнорировать WM_ERASEBKGND (или как там его называют).

Или, если вы точно знаете, где хотите рисовать, вы можете поместить непрямоугольное окно над элементом управления ActiveX.

Редактировать: Добавлено последнее предложение

0 голосов
/ 30 июня 2010

Вы не можете нарисовать над компонентом. ActiveX имеет собственное сообщение Paint. если событие Paint видно в вашем контейнере (winform), вы можете изменить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...