I haven't tried the code, but I wanted to point out that invaliding inside a paint handler is almost never a good idea (even when it is asynchronoys). And sleeping in a paint handler is even worse. You're blocking the event queue and preventing your drawing from being completed. If your form were double-buffered, for example, the sleep in the thread would block the buffer from being copied to the screen, even on Windows. You're also keeping any device contexts associated with the paint locked for that amount of time.
If you want a regular update on screen, create a System.Windows.Forms.Timer and do the invalidate whenever the timer fires. Peter -----Original Message----- From: "Santi Serrano" <[EMAIL PROTECTED]> To: "Mono WinForms" <[email protected]> Date: Tuesday, 30 May, 2006 17:10 Subject: [Mono-winforms-list] invalidate >Hi, > >The following code draws a line with Mono on Windows but doesn't do >anything on Linux. I'm using Monoppix with Mono 1.1.8. Can anyone tell >me if this issue is solved with recent releases? > >Thank you. > >------------------------------------------------------ >using System; >using System.Drawing; >using System.Windows.Forms; >using System.Threading; > >namespace WindowsApplication1 >{ > public class Form1 : System.Windows.Forms.Form > { > private int i; > > [STAThread] > static void Main() > { > Application.Run(new Form1()); > } > > protected override void OnPaint(PaintEventArgs pea) > { > pea.Graphics.DrawLine(new System.Drawing.Pen(Color.Blue), 1, 1, i, i); > Thread.Sleep(200); > i++; > Invalidate(); > } > } >} >------------------------------------------------------ >_______________________________________________ >Mono-winforms-list maillist - [email protected] >http://lists.ximian.com/mailman/listinfo/mono-winforms-list > > _______________________________________________ Mono-winforms-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-winforms-list
