Screen Saver Using C#


In this article I will show you how to make a screen saver by using c# windows form. It is not perfect screen sever as windows gives us but yes, it is little bit like that.


1) Add a form in your application and make it form border style none. Set transparency key as form background color so it will make your form transparent.


2) Put a timer control on your form and set it's interval as you want to display picture per millisecond on the computer screen.

3) Code behind

int x, y;
private void timer1_Tick(object sender, EventArgs e)
    * here x & y are the variables  and below two line will put desktop's different
    * screen location in it.
    x = Convert.ToInt32((Microsoft.VisualBasic.VBMath.Rnd()) * (this.ClientSize.Width));
    y =Convert.ToInt32((Microsoft.VisualBasic.VBMath.Rnd())*this.ClientSize.Height));
    * screenStart() is the function which works to display image at the different screen
    * location of the desktop      

//This is the function which is called in the time1_Tick even
private void screenStart()
    //Picturebox is created dyanamically
    PictureBox pbox = new PictureBox();
    //and then after it will display at different location
    pbox.Location = new Point(x, y);
    pbox.Height = 100;
    pbox.Width = 100;
    //picture is set to the picturebox from the Resources.
    pbox.Image = global::screensever.Properties.Resources.thank_you_blue_rose;
    pbox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
    //and at last control will added to the form

//This the Form1_Keyup even from where you will exit from the application while its running.
private void Form1_KeyUp(object sender, KeyEventArgs e)
    if (Keys.Escape == e.KeyCode)