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: Sub colorDialogButton_Click(sender As Object, e As EventArgs) _ Handles colorDialogButton.Click Dim dlg As ColorDialog = New ColorDialog() dlg.Color = Color.Red Dim res As DialogResult = dlg.ShowDialog() If res = DialogResult.OK Then MessageBox.Show("You picked " & dlg.Color.ToString()) End If End Sub 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: Sub InitializeComponent() ... Me.ColorDialog1 = New ColorDialog() ... End Sub Sub colorDialogButton_Click(sender As Object, e As EventArgs) _ Handles colorDialogButton.Click colorDialog1.Color = Color.Red Dim res As DialogResult = colorDialog1.ShowDialog() If res = DialogResult.OK Then MessageBox.Show("You picked " & colorDialog1.Color.ToString()) End If End Sub We tend to prefer the latter approach because we 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. |