C # Рисование в панели - PullRequest
       4

C # Рисование в панели

0 голосов
/ 10 июня 2011

Я хочу нарисовать на панели с помощью этого метода:

protected override void InitOutput(object output)
        {
            if (output is Control)
            {
                Control c = (Control)output;
                g.FillRectangle(hb, 7, 10, 30 - 19, 5);
                ...
            }

С текстом я могу сделать это:

protected override void InitOutput(object output)
        {
            if (output is Control)
            {
                Control c = (Control)output;
                lbl.Name = "lbl";
                lbl.Size = new System.Drawing.Size(10, 10);
                lbl.TabIndex = 5;
                lbl.Text = "test";

                panel.Location = new System.Drawing.Point(1, 1);
                panel.Name = "panelSys";
                panel.Size = new System.Drawing.Size(20, 20);
                panel.TabIndex = 5;
                panel.Controls.Add(lbl);
                c.Controls.Add(panelSys);
            }

Надеюсь, вы можете помочь мне, спасибо

Ответы [ 2 ]

1 голос
/ 10 июня 2011

Я не уверен, зачем вам нужна функция InitOtuput, но если вы хотите извлечь из нее, вы можете сделать это следующим образом:

private void InitOutput(object output)
{
    if (output is Control)
    {
        Control c = (Control)output;
        c.Paint += new System.Windows.Forms.PaintEventHandler(c_Paint);
        // Invalidate needed to rise paint event
        c.Invalidate();
    }
}
private void c_Paint(object sender, PaintEventArgs e)
{
    SolidBrush hb =  new SolidBrush(Color.Red);
    e.Graphics.FillRectangle(hb, 7, 10, 30 - 19, 5);
    e.Graphics.DrawString("test", DefaultFont, hb, new PointF(50, 50));
}

Кроме того, вам не нужно использовать метку для рисования текста.можно нарисовать с помощью Graphics.DrawSting

0 голосов
/ 10 июня 2011

Рисование к элементам управления Необходимо сделать, добавив событие «Paint» к элементу управления, а затем нарисовать внутри этого события.Вы получите объект «Графика» через EventArgs.Затем вы можете форсировать ничью элемента управления, используя метод элемента управления «Invalidate».Также Windows иногда вызывает событие Paint самостоятельно.

В качестве альтернативы вы также можете создать нормаль с помощью Bitmap.Create.Нарисуйте его, а затем назначьте его элементу управления изображениями.

...