Как вызвать функцию picturebox_Paint из другого места - PullRequest
0 голосов
/ 13 августа 2011
    private void textBox1_KeyDown(object sender, KeyEventArgs e)
    {
        char x;
        int sw = 0;
        if (e.KeyCode == Keys.Enter)
        {
            x = Convert.ToChar(textBox1.Text);
            int i;
            for (i = 0; i < n; i++)
                if (x == litere[i]) { lb[i].Text = ""; lb[i].Text = Convert.ToString(x); sw = 1; }
            if (sw == 0) { pictureBox1_Paint(???); }
        }
    }

$

    private void pictureBox1_Paint(object sender, PaintEventArgs e)
    {
        wrong++;
        Graphics g = CreateGraphics();
        Brush b=new System.Drawing.Drawing2D.HatchBrush(System.Drawing.Drawing2D.HatchStyle.Cross,Color.White,Color.Black);
        if (wrong == 1) g.FillEllipse(b, 250, 125, 30, 30);

    }

$ Я не знаю, как вызвать функцию Picturebox_paint ... в событии текстового поля или, если это невозможно, как я могу нарисовать что-то в окне рисунка из el

Ответы [ 2 ]

1 голос
/ 13 августа 2011

Много чего не так ++. Но вы начинаете исправлять это с:

        if (sw == 0) pictureBox1.Invalidate(); 
0 голосов
/ 13 августа 2011

Может быть, вам следует создать метод:

private void redraw()
{
    wrong++;
    Graphics g = CreateGraphics();
    Brush b=new System.Drawing.Drawing2D.HatchBrush(System.Drawing.Drawing2D.HatchStyle.Cross,Color.White,Color.Black);
    if (wrong == 1) g.FillEllipse(b, 250, 125, 30, 30);
}

, и вы можете использовать его где угодно

private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
    redraw();
}

и

...
if (sw == 0) { redraw(); }
...
...