返回介绍

Dialogs

发布于 2025-02-22 22:19:51 字数 10283 浏览 0 评论 0 收藏 0

In this part of the Visual Basic Winforms tutorial, we will talk about dialogs.

Dialog windows or dialogs are an indispensable part of most modern GUI applications. A dialog is defined as a conversation between two or more persons. In a computer application a dialog is a window which is used to "talk" to the application. A dialog is used to input data, modify data, change the application settings etc. Dialogs are important means of communication between a user and a computer program.

There are essentially two types of dialogs. Predefined dialogs and custom dialogs.

FolderBrowserDialog

This dialog prompts the user to select a folder.

' ZetCode Mono Visual Basic Winforms tutorial
'
' In this program we select a directory with a
' FolderBrowser dialog. The selected directory's
' name is shown in the statusbar. 
'
' author jan bodnar
' last modified May 2009
' website www.zetcode.com

Imports System.Windows.Forms
Imports System.Drawing


Public Class WinVBApp
  Inherits Form
  
  Dim statusbar As StatusBar

  Public Sub New

     Me.Text = "FolderBrowserDialog"
     Me.Size = New Size(300, 250)
     
     Me.InitUI
     
     Me.CenterToScreen

  End Sub
  
  Private Sub InitUI
  
    Dim toolbar As New ToolBar
    Dim open As New ToolBarButton

    statusbar = New StatusBar
    statusbar.Parent = Me

    toolbar.Buttons.Add(open)

    Me.Controls.Add(toolbar)

    AddHandler toolbar.ButtonClick, AddressOf Me.OnClicked
    
  End Sub

  Private Sub OnClicked(ByVal sender As Object, _
          ByVal e As ToolBarButtonClickEventArgs)
  
    Dim dialog As New FolderBrowserDialog

    If dialog.ShowDialog(Me) = DialogResult.OK
       statusbar.Text = dialog.SelectedPath
    End If

  End Sub


  Public Shared Sub Main
    Application.Run(New WinVBApp)
  End Sub
   
End Class

We have a toolbar and one toolbar button. By clicking on the button, the FolderBrowserDialog appears on the screen. The name of the selected folder is shown in the statusbar.

Dim dialog As New FolderBrowserDialog

The FolderBrowserDialog is created.

If dialog.ShowDialog(Me) = DialogResult.OK
  statusbar.Text = dialog.SelectedPath
End If  

The ShowDialog method shows the dialog on the screen. If we click on the OK button of the dialog, the selected directory path is shown on the statusbar.

FolderBrowserDialog
Figure: FolderBrowserDialog

ColorDialog

This dialog displays available colors along with controls that enable the user to define custom colors.

' ZetCode Mono Visual Basic Winforms tutorial
'
' In this program we use the ColorDialog
' to change a color of a rectangle
'
' author jan bodnar
' last modified May 2009
' website www.zetcode.com

Imports System.Windows.Forms
Imports System.Drawing


Public Class WinVBApp
  Inherits Form
  
  Private col As Color

  Private Const rectWidth As Integer = 100
  Private Const rectHeight As Integer = 100
  Private Dim r As Rectangle


  Public Sub New

     Me.Text = "ColorDialog"
     Me.Size = New Size(300, 250)
     
     Me.InitUI
     
     Me.CenterToScreen

  End Sub
  
  Private Sub InitUI
  
    Dim tbar As New ToolBar
    Dim open As New ToolBarButton

    col = Color.Blue

    tbar.Buttons.Add(open)

    Me.LocateRect

    Me.SetStyle(ControlStyles.ResizeRedraw, True)
    Controls.Add(tbar)

    AddHandler Me.Paint, AddressOf Me.OnPaint
    AddHandler tbar.ButtonClick, AddressOf Me.OnClicked
    
  End Sub
  
  Private Sub OnPaint(ByVal sender As Object, ByVal e As PaintEventArgs)
  
    Dim g As Graphics = e.Graphics
    Me.LocateRect

    Dim brsh As New SolidBrush(col)

    g.FillRectangle(brsh, r)  
  
  End Sub

  Private Sub OnClicked(ByVal sender As Object, _ 
          ByVal e As ToolBarButtonClickEventArgs)
  
     Dim dialog As New ColorDialog
     
     If dialog.ShowDialog(Me) = DialogResult.OK
      col = dialog.Color
      Me.Invalidate
     End If

  End Sub
  
  Private Sub LocateRect
    Dim x As Integer = (Me.ClientSize.Width - rectWidth) / 2
    Dim y As Integer = (Me.ClientSize.Height - rectHeight) / 2
    r = New Rectangle(x, y, rectWidth, rectHeight)
  End Sub


  Public Shared Sub Main
    Application.Run(New WinVBApp)
  End Sub
   
End Class

In this code example, we use the ColorDialog to choose a color for a rectangle that is located in the middle of the form control.

col = Color.Blue

At the beginning, the color of the rectangle is blue. We use the col variable to determine the color of the rectangle.

Dim dialog As New ColorDialog

The ColorDialog is created.

If dialog.ShowDialog(Me) = DialogResult.OK
  col = dialog.Color
  Me.Invalidate
End If

The code shows the color dialog. If we click on the OK button, we get the selected color and call the Invalidate method. The method invalidates the entire surface of the control and causes the control to be redrawn. The result is that the rectangle is drawn with a new color value.

ColorDialog
Figure: ColorDialog

FontDialog

The FontDialog is used to select fonts.

' ZetCode Mono Visual Basic Winforms tutorial
'
' In this program we use the FontDialog
' to change a font of a label
'
' author jan bodnar
' last modified May 2009
' website www.zetcode.com

Imports System.Windows.Forms
Imports System.Drawing


Public Class WinVBApp
  Inherits Form
  
  Private Dim txt As Label
  
  Public Sub New

     Me.Text = "FontDialog"
     Me.Size = New Size(300, 250)
     
     Me.InitUI
     
     Me.CenterToScreen

  End Sub
  
  Private Sub InitUI
  
    Dim tbar As New ToolBar
    tbar.Parent = Me
    
    Dim open As New ToolBarButton
    tbar.Buttons.Add(open)

    txt = New Label
    txt.Parent = Me
    txt.Text = "Winforms tutorial"
    
    Me.LocateText
    
    txt.AutoSize = True

    AddHandler Me.Resize, AddressOf Me.OnResize
    AddHandler tbar.ButtonClick, AddressOf Me.OnClicked
    
  End Sub
  
  Private Sub OnClicked(ByVal sender As Object, _ 
          ByVal e As ToolBarButtonClickEventArgs)
  
     Dim dialog As New FontDialog
     
     If dialog.ShowDialog(Me) = DialogResult.OK
      txt.Font = dialog.Font
      Me.LocateText
     End If

  End Sub
  
  Private Sub LocateText
    txt.Top = (Me.ClientSize.Height - txt.Height) / 2
    txt.Left = (Me.ClientSize.Width - txt.Width) / 2
  End Sub

  Private Sub OnResize(ByVal sender As Object, ByVal e As EventArgs)
     Me.LocateText
  End Sub

  Public Shared Sub Main
    Application.Run(New WinVBApp)
  End Sub
   
End Class

We draw some text in the middle of the form control. We use the font dialog to change font for this text.

Dim dialog As New FontDialog

FontDialog is created.

If dialog.ShowDialog(Me) = DialogResult.OK
  txt.Font = dialog.Font
  Me.LocateText
End If

When we click on the OK button, we set a newly selected font for the Label control. Because the size of the text changes with different fonts, we must call the LocateText method, which locates the text in the middle of the form control.

FontDialog
Figure: FontDialog

OpenDialog

This dialog is used to open files.

' ZetCode Mono Visual Basic Winforms tutorial
'
' In this program we use the OpenDialog to
' open a file and show its contents in 
' a TextBox control
'
' author jan bodnar
' last modified May 2009
' website www.zetcode.com

Imports System.Windows.Forms
Imports System.Drawing
Imports System.IO


Public Class WinVBApp
  Inherits Form
  
  Private txtBox As TextBox
  
  Public Sub New

     Me.Text = "OpenDialog"
     Me.Size = New Size(300, 250)
     
     Me.InitUI
     
     Me.CenterToScreen

  End Sub
  
  Private Sub InitUI
  
    Dim tbar As New ToolBar
    tbar.Parent = Me
    
    Dim open As New ToolBarButton
    tbar.Buttons.Add(open)

    txtBox = New TextBox
    txtBox.Parent = Me
    txtBox.Multiline = True
    txtBox.ScrollBars = ScrollBars.Both
    txtBox.WordWrap = False
    txtBox.Parent = Me
    txtBox.Dock = DockStyle.Fill

    AddHandler tbar.ButtonClick, AddressOf Me.OnClicked
    
  End Sub
  
  Private Sub OnClicked(ByVal sender As Object, _ 
          ByVal e As ToolBarButtonClickEventArgs)
          
     Dim dia As New OpenFileDialog
     dia.Filter = "VB files (*.vb)|*.vb"

     If dia.ShowDialog(Me) = DialogResult.OK
       
       Dim reader As New StreamReader(dia.FileName)
       Dim data As String = reader.ReadToEnd
       
       reader.Close
       txtBox.Text = data
     
     End If
     
  End Sub
  

  Public Shared Sub Main
    Application.Run(New WinVBApp)
  End Sub
   
End Class

We use the OpenDialog control to open VB source files. We have a TextBox control, where we display the file.

Dim dia As New OpenFileDialog

The OpenDialog is created.

dia.Filter = "VB files (*.vb)|*.vb"

We set the Filter property to VB source files. Only VB files can be chosen with this dialog instance.

If dia.ShowDialog(Me) = DialogResult.OK
   
  Dim reader As New StreamReader(dia.FileName)
  Dim data As String = reader.ReadToEnd
   
  reader.Close
  txtBox.Text = data

End If

After clicking OK, we read the contents of the chosen file and put it into the TextBox control.

OpenDialog
Figure: OpenDialog

In this part of the Visual Basic Winforms tutorial, we showed various dialogs.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文