Re: [C#][WinForms] После OnPaint остается неотрисованный уча
От: Ovl Россия  
Дата: 10.03.09 19:01
Оценка: 3 (1)
class MyForm :
    Form
{
    public MyForm()
    {
                /* поскипано */        

                pct_.Paint += pictureBox_Paint;

        // не надо, сами разберутся
                //Invalidate();
    }
    
    protected override void pictureBox_Paint(PaintEventArgs args)
    {
        Draw(e.Graphics);
    }
    
    public void OnClick(object sender, System.EventArgs args)
    {
        Form2 f = new Form2();
        f.ShowDialog();
                // не надо. События WM_PAINT будут приходить и так
        //Invalidate();
    }
    
    public void Draw(Graphics gr)
    {
        gr.Clear(Color.Red);
              
                /* 
                //у PaintEventArgs есть Graphics, используйте его здесь, так будет правильнее
        Graphics gph = pct_.CreateGraphics();
        gph.Clear(Color.Red);
                // не надо диспозе. по моему в документации явно про это написано
        gph.Dispose();
                */
    }
    
    private Button btn_;
    private PictureBox pct_;
}


VVA>Подскажите, пожалуйста:

VVA>1) Почему так происходит?
потому что код отвечающий за отрисовку PictureBox и ваш — не связаны друг с другом. Да и вообще не очень кошерно сделано было. То есть теоретических неполадок — много.
VVA>2) Как лечить?
а в каком виде нужен больной? посмотрите комментарии — помогли?
Read or Die!
Как правильно задавать вопросы
Как правильно оформить свой вопрос
Автор: anvaka
Дата: 15.05.06
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.