[ TATATA @ 04.11.2013. 15:57 ] @
Ekran forme je podeljen na dva pravougaonika(oblasti), s' tim sto prvi zauzima 2/3 ekrana, a drugi 1/3. Npr:
Code:

 this.ClientSize = new System.Drawing.Size(842, 498);
 this.Name = "Form1";
 this.ResumeLayout(false);


protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
         

            SolidBrush brush = new SolidBrush(Color.Red);
            SolidBrush brush1 = new SolidBrush(Color.Green);

            Rectangle rect = new Rectangle(0, 0, Width, 20);
            Rectangle rect1 = new Rectangle(0, 20, Width, 10);
           

            e.Graphics.FillRectangle(brush, rect);
            e.Graphics.FillRectangle(brush1, rect1);
          
    }

Cilj je, da ukoliko uradim resize prozora(recimo uvecam), ti pravougaonici automatski iscrtaju u novim dimenzijama, pri cemu ce opet zauzimati 2/3(1/3) prozora.
Pokusao sam sa Invalidate(), dobijem to sto hocu, ali ekran blinka.
Na koji nacin mogu to da uradim?
[ deerbeer @ 04.11.2013. 17:48 ] @
Ako pozivas Invalidate u Resizing eventu onda ti se i desava da ti prozor blinka zato se resizing event se ispaljuje na svaki pixel pomeraja.
Bolje je da pozivas Invalidate na Resized event jer ce se on ispaliti samo jednom - kada se resize zavrsi .

Druga solucija je da pozivas u resizing eventu overload Invalidate metode koja prihvata kao parametar rectangle a to je ona povrsina koja se zapravo promenila u resizu, koju opet moras da izracunas , tako da ces time eliminisati blinkanje ali nekad ni to nije bas moguce u potpunosti zavisi od slucaja.

Cini mi se da imas property nad formom DoubleBuffered koja sprecava blinkanje tj . repaint cele povrsine tako da ti ova druga solucija mozda i ne treba.




[ TATATA @ 05.11.2013. 08:08 ] @
Mozes li mi dati primer, nisam siguran da sam te najbolje razumeo. Obzirom da sam nov u GUI-u, znacila bi mi svaka pomoc.
Hvala unapred