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