Click here to Skip to main content
13,867,740 members
Click here to Skip to main content
Add your own
alternative version


15 bookmarked
Posted 11 Jan 2017
Licenced CPOL

Simple Display Dialog of Waiting in WinForms

, 12 Jan 2017
Rate this:
Please Sign up or sign in to vote.
A simple method to display a waiting dialog in WinForm application, and not block the main form.


This article describes a simple method to display a waiting dialog and not block the main form.


When I create a WinForm application by C#, it's very troublesome to show a waiting dialog. Sometimes I do it, but not beautiful or hard to change style.


I use a class library, WaitForm is a waiting dialog, and WaitWndFun is a class to show the form or close by create thread,

WaitWndFun Class Function

Show Function

public void Show(Form parent)
            loadthread = new Thread(new ParameterizedThreadStart(LoadingProcessEx));

Close Function

public void Close()
            if (loadingForm != null)
                loadingForm.BeginInvoke(new System.Threading.ThreadStart(loadingForm.CloseLoadingForm));
                loadingForm = null;
                loadthread = null;

Thread Method

private void LoadingProcessEx()
            loadingForm = new WaitForm();
        private void LoadingProcessEx(object parent)
            Form Cparent = parent as Form;
            loadingForm = new WaitForm(Cparent);

When closing dialog, there is a function to close and dispose the form in WaitForm.

public void CloseLoadingForm()
            this.DialogResult = DialogResult.OK;
            if (label1.Image != null)

And when there is a parent form, we should show dialog in center of parent.

public WaitForm(Form parent)
            if (parent != null)
                this.StartPosition = FormStartPosition.Manual;
                this.Location = new Point(parent.Location.X + parent.Width / 2 - this.Width / 2, 
                                parent.Location.Y + parent.Height / 2 - this.Height / 2);
                this.StartPosition = FormStartPosition.CenterParent;

How to Use

It is very easy to use.

  1. Reference the WaitWnd.dll or add sources file to your project.
  2. Change the style of waiting form, you can change the picture and text of label to your liking in the form designer.

  3. Create a new WaitWndFun object. When you call show function, the waiting form will appear, and when you call close function, the waiting form will close.
    WaitWnd.WaitWndFun waitForm = new WaitWnd.WaitWndFun();
            private void button1_Click(object sender, EventArgs e)
                //do something


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Dean Feng
Software Developer SHJS Tech
China China
A Software Developer.Program langauge:C#,C++,Python; Framework:Qt,VTK,MFC,Winform

You may also be interested in...

Comments and Discussions

Questiongood job Pin
wshcdr21-Nov-18 14:52
memberwshcdr21-Nov-18 14:52 
QuestionWindows 7 or Xp error Pin
selcukpeksen12-Sep-18 6:10
memberselcukpeksen12-Sep-18 6:10 
AnswerRe: Windows 7 or Xp error Pin
selcukpeksen12-Sep-18 22:19
memberselcukpeksen12-Sep-18 22:19 
QuestionLove It! Pin
Graham Irons20-Feb-17 22:32
memberGraham Irons20-Feb-17 22:32 
AnswerRe: Love It! Pin
Dean Feng21-Feb-17 4:31
professionalDean Feng21-Feb-17 4:31 
GeneralGood but... Pin
loyal ginger17-Jan-17 4:37
memberloyal ginger17-Jan-17 4:37 
GeneralRe: Good but...[Thank you] Pin
Dean Feng17-Jan-17 16:42
professionalDean Feng17-Jan-17 16:42 
GeneralRe: Good but...[Thank you] Pin
loyal ginger18-Jan-17 11:11
memberloyal ginger18-Jan-17 11:11 
QuestionNICE Pin
DumpsterJuice13-Jan-17 9:21
memberDumpsterJuice13-Jan-17 9:21 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Cookies | Terms of Use | Mobile
Web05 | 2.8.190214.1 | Last Updated 12 Jan 2017
Article Copyright 2017 by Dean Feng
Everything else Copyright © CodeProject, 1999-2019
Layout: fixed | fluid