What you're looking for is a modal form : Displaying Modal and Modeless Windows Forms
Form1 form1 = new Form1();
/* Calling ShowDialog instead of Form.Show() will force
* the user to close that form first */
form1.ShowDialog();
Update 1 :
If you are looking for a system-wide blocking just as Workrave software does,
one could do the following :
Create a window with no borders, maximized and make the borders (in your case very large ones) transparent. In the middle of this window there would be your pseudo dialog-box.
Similarly, one would take a screenshot and display it in that form, but you wouldn't see screen activity should there be some.
Example of Workrave blocking activity :

You cannot do anything on your desktop unless you skip/postpone that rest break.
Note : Workrave is a program that assists in the recovery and prevention of Repetitive Strain Injury (RSI). The program frequently alerts you to take micro-pauses, rest breaks and restricts you to your daily limit. (from their website)
Update 2 :
As Wrokrave is open-source, one could just browse through the code to see how they did implement that blocking system : http://sourceforge.net/projects/workrave/