Dialog apply method : Custom Dialog « GUI « VB.Net Tutorial






Dialog apply method
Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.Windows.Forms

public class DialogApplyMethod
   public Shared Sub Main
        Application.Run(New Form1)
   End Sub
End class


Public Class Form1
    Inherits System.Windows.Forms.Form

#Region " Windows Form Designer generated code "

    Public Sub New()
        MyBase.New()

        'This call is required by the Windows Form Designer.
        InitializeComponent()

        'Add any initialization after the InitializeComponent() call

    End Sub

    'Form overrides dispose to clean up the component list.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    'Required by the Windows Form Designer
    Private components As System.ComponentModel.IContainer

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer.  
    'Do not modify it using the code editor.
  Friend WithEvents btnCreate As System.Windows.Forms.Button
  Friend WithEvents lblReturn As System.Windows.Forms.Label
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.btnCreate = New System.Windows.Forms.Button()
Me.lblReturn = New System.Windows.Forms.Label()
Me.SuspendLayout()
'
'btnCreate
'
Me.btnCreate.Location = New System.Drawing.Point(72, 144)
Me.btnCreate.Name = "btnCreate"
Me.btnCreate.Size = New System.Drawing.Size(152, 23)
Me.btnCreate.TabIndex = 0
Me.btnCreate.Text = "Create Dialog Box"
'
'lblReturn
'
Me.lblReturn.Location = New System.Drawing.Point(88, 72)
Me.lblReturn.Name = "lblReturn"
Me.lblReturn.TabIndex = 1
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(292, 273)
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.lblReturn, Me.btnCreate})
Me.Name = "Form1"
Me.Text = "Form1"
Me.ResumeLayout(False)

   End Sub

#End Region

  public sub UpdateLabel(str as String)
    lblReturn.Text = str
  end sub

  Private Sub btnCreate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCreate.Click
    dim dlg as new DialogDemo( me ) 
    dlg.EnableApplyButton = false

    dlg.ShowDialog()
    
    if dlg.DialogResult = DialogResult.OK then
      lblReturn.Text = dlg.TextOut
    else
      lblReturn.Text = dlg.DialogResult.ToString()
    end if
  End Sub
End Class

public class DialogDemo 
      inherits Form
  dim btnApply as Button
  dim txt as TextBox
  dim f as Form1
  
  public sub new (f as Form1)
        myBase.New
    me.f = f
    FormBorderStyle = FormBorderStyle.FixedDialog
    ControlBox = false
    MaximizeBox = false
    MinimizeBox = false
    ShowInTaskbar = false
    Size = new Size(400,200)
    StartPosition = FormStartPosition.CenterScreen

    dim btnOK as New Button
    btnOK.Text = "OK"
    btnOK.DialogResult = DialogResult.OK
    btnOK.Location = new Point(50,50)
    Controls.Add(btnOK)
    
    btnApply = new Button()
    btnApply.Text = "Apply"
    btnApply.Location = new Point(150,50)
    btnApply.Enabled = false
    AddHandler btnApply.Click, AddressOf ApplyOnClick
    Controls.Add(btnApply)
    
    dim btnCancel as new Button()
    btnCancel.Text = "Cancel"
    btnCancel.DialogResult = DialogResult.Cancel
    btnCancel.Location = new Point(250,50)
    Controls.Add(btnCancel)

    txt = new TextBox()
    txt.Size = new Size(100,15)
    txt.Location = new Point(150,15)
    AddHandler txt.TextChanged, AddressOf TextBoxChanged
    Controls.Add(txt)
    
  end sub

  private sub ApplyOnClick(sender as Object, e as EventArgs)
    f.UpdateLabel(txt.Text)
    EnableApplyButton = false
  end sub
  
  private sub TextBoxChanged(sender as Object, e as EventArgs)
    dim txt as TextBox = CType(sender,TextBox)
    dim dlg as DialogDemo = CType(txt.Parent,DialogDemo)
    dlg.EnableApplyButton = true  
  end sub

  public property EnableApplyButton as Boolean
    get 
      return btnApply.Enabled
    end get
    set
      btnApply.Enabled = value 
    end set
  end property
  
  public ReadOnly property TextOut as string
    get
      return txt.Text 
    end get
  end property
end class








14.69.Custom Dialog
14.69.1.Create Dialog from FormCreate Dialog from Form
14.69.2.User defined DialogUser defined Dialog
14.69.3.Get Custom dialog returning valueGet Custom dialog returning value
14.69.4.Login DialogLogin Dialog
14.69.5.About DialogAbout Dialog
14.69.6.Dialog apply methodDialog apply method
14.69.7.Custom dialog with custom classCustom dialog with custom class
14.69.8.Dialog with propertiesDialog with properties