WinForms ships with several standard dialogs (sometimes known as "common dialogs") provided as components from the System.Windows. Forms namespace. A component is like a control in that you can drag it from the Toolbox onto a design surface and set its properties using the Property Browser. However, unlike a control, a component doesn't render in a region. Instead, it shows up on the tray along the bottom of the design surface so that you can choose it, and it isn't shown at run time at all. For the details of components, read Chapter 9: Design-Time Integration. Because all the standard dialogs are components, they can be created in two ways: manually or by using the Designer. For example, creating and showing an instance of the ColorDialog component manually looks like this: void colorDialogButton_Click(object sender, EventArgs e) { ColorDialog dlg = new ColorDialog(); dlg.Color = Color.Red; DialogResult res = dlg.ShowDialog(); if( res == DialogResult.OK ) { MessageBox.Show("You picked " + dlg.Color.ToString()); } } However, if you drag a ColorDialog component from the Toolbox, you can show it without explicitly writing the creation code, because the Designer will generate it for you in the InitializeComponent function: void InitializeComponent() { ... this.colorDialog1 = new ColorDialog(); ... } void colorDialogButton_Click(object sender, EventArgs e) { colorDialog1.Color = Color.Red; DialogResult res = colorDialog1.ShowDialog(); if( res == DialogResult.OK ) { MessageBox.Show("You picked " + colorDialog1.Color .ToString()); } } I tend to prefer the latter approach because I like to set properties visually, but either one works just fine. The following standard dialogs come with WinForms:
All but one of the standard dialogs, including the FolderBrowserDialog that .NET 1.0 forgot , are wrappers around existing common dialogs in Windows. Because these dialogs don't support modeless operation, neither do the WinForms components. However, the PrintPreviewDialog component, which provides a new dialog just for WinForms and is not available from Windows, supports both modal and modeless operation using ShowDialog and Show, respectively. |