VB.Net Tutorial/GUI/Controls

Материал из VB Эксперт
Перейти к: навигация, поиск

Add Label to a form

<source lang="vbnet">Imports System.Windows.Forms public class AddNewLabelToForm

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

End class

Public Class Form1

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       Dim lbl As New Label
       lbl.SetBounds(10, 50, 100, 25)
       lbl.Text = "Hello World!"
       Me.Controls.Add(lbl)
   End Sub

End Class <Global.Microsoft.VisualBasic.rupilerServices.DesignerGenerated()> _ Partial Public Class Form1

   Inherits System.Windows.Forms.Form
   "Form overrides dispose to clean up the component list.
   <System.Diagnostics.DebuggerNonUserCode()> _
   Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
       If disposing AndAlso components IsNot Nothing Then
           components.Dispose()
       End If
       MyBase.Dispose(disposing)
   End Sub
   "Required by the Windows Form Designer
   Private components As System.ruponentModel.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.
   <System.Diagnostics.DebuggerStepThrough()> _
   Private Sub InitializeComponent()
       Me.SuspendLayout()
       "
       "Form1
       "
       Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
       Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
       Me.ClientSize = New System.Drawing.Size(292, 273)
       Me.Name = "Form1"
       Me.Text = "Form1"
       Me.ResumeLayout(False)
   End Sub

End Class</source>

Add TextBox to Form in code

<source lang="vbnet">Imports System.Windows.Forms public class AddTextBoxForm

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

End class

Public Class Form1

   Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
       Dim dynamicText As TextBox = Nothing
       dynamicText = New Windows.Forms.TextBox
       dynamicText.Name = "TimeTextBox"
       dynamicText.Location = New System.Drawing.Point(8, 8)
       dynamicText.Size = New System.Drawing.Size(232, 20)
       dynamicText.TabIndex = 0
       Me.Controls.Add(dynamicText)
       Dim theTextBox As TextBox
       theTextBox = Me.Controls("TimeTextBox")
       If (theTextBox IsNot Nothing) Then
           theTextBox.Text = Now.ToLongTimeString()
       End If
   End Sub

End Class

<Global.Microsoft.VisualBasic.rupilerServices.DesignerGenerated()> _ Partial Class Form1

   Inherits System.Windows.Forms.Form
   "Form overrides dispose to clean up the component list.
   <System.Diagnostics.DebuggerNonUserCode()> _
   Protected Overrides Sub Dispose(ByVal disposing As Boolean)
       If disposing AndAlso components IsNot Nothing Then
           components.Dispose()
       End If
       MyBase.Dispose(disposing)
   End Sub
   "Required by the Windows Form Designer
   Private components As System.ruponentModel.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.
   <System.Diagnostics.DebuggerStepThrough()> _
   Private Sub InitializeComponent()
       Me.SuspendLayout()
       "
       "Form1
       "
       Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
       Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
       Me.ClientSize = New System.Drawing.Size(260, 76)
       Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
       Me.MaximizeBox = False
       Me.Name = "Form1"
       Me.Text = "Dynamic Controls"
       Me.ResumeLayout(False)
   End Sub

End Class</source>

Add the Button control to the Form Controls collection

<source lang="vbnet">imports System imports System.Drawing imports System.Windows.Forms public class ControlParent : inherits Form

 Private WithEvents btn as Button
 public sub New()
   btn = new Button()
   btn.Location = new Point(50,50)
   btn.Size = new Size(100,23)
   btn.Text = "Relationships"
   Controls.Add(btn)
   btn.Parent = me
 end sub
 public shared sub Main() 
   Application.Run(new ControlParent())
 end sub
 private sub btn_Click(ByVal sender as object,ByVal e as EventArgs) Handles btn.Click
   Console.WriteLine("Button Parent:  " + btn.Parent.ToString())
   Console.WriteLine("Button HasChildren:  " + btn.HasChildren.ToString())
   Console.WriteLine("TopLevelControl:  " + btn.TopLevelControl.ToString())
   Console.WriteLine("Form HasChildren:  " + me.HasChildren.ToString())
   Console.WriteLine("Form Controls Count:  " + me.Controls.Count.ToString())
 end sub

end class</source>

Cast event sender to control

<source lang="vbnet">Option Strict On Imports System.Drawing Imports System.Windows.Forms Public Class Form1 : Inherits Form

  " Instantiate buttons
  Public WithEvents btnOK As New Button()
  Public WithEvents btnCancel As New Button()
  Public WithEvents btnQuit As New Button()
  
  " Application entry point
  Public Shared Sub Main()
     Dim frm As New Form1()
     frm.ShowDialog()
  End Sub
  
  " Class constructor
  Public Sub New()
     MyBase.New()
     " Define button sizes and locations
     Me.btnOK.Location = New Point(100, 50)
     Me.btnOK.Size = New Size(100, 50)
     Me.btnOK.Text = "OK"
     Me.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK
     Me.btnCancel.Location = New Point(100, 125)
     Me.btnCancel.Size = New Size(100, 50)
     Me.btnCancel.Text = "Cancel"
     Me.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel
     
     Me.btnQuit.Location = New Point(100, 200)
     Me.btnQuit.Size = New Size(100, 50)
     Me.btnQuit.Text = "Exit"
     Me.btnQuit.DialogResult = System.Windows.Forms.DialogResult.Abort
     " Define form controls and caption
     Me.Controls.Add(btnOK)
     Me.Controls.Add(btnCancel)
     Me.Controls.Add(btnQuit)
     Me.Text = "Button Click Events"
  End Sub
  
  " Event handler for all three buttons
  Private Sub ButtonClicked(ByVal sender As System.Object, _
                            ByVal e As System.EventArgs) _
          Handles btnOK.Click, btnCancel.Click, btnQuit.Click
     If TypeOf sender Is Button Then
        Dim btn As Button = DirectCast(sender, Button)
        If btn.Name = "btnOK" Then
           Console.WriteLine("btnOK")
        ElseIf btn.Name = "btnCancel" Then
           Console.WriteLine("Cancel")
           Exit Sub
        Else 
           Me.Close()
        End If
     Else
        Throw New ArgumentException( _
              "The event was raised by an invalid object.")
     End If
  End Sub

End Class</source>

Check Control type

<source lang="vbnet">Option Strict On Imports System.Drawing Imports System.Windows.Forms Public Class Form1 : Inherits Form

  " Instantiate buttons
  Public WithEvents btnOK As New Button()
  Public WithEvents btnCancel As New Button()
  Public WithEvents btnQuit As New Button()
  
  " Application entry point
  Public Shared Sub Main()
     Dim frm As New Form1()
     frm.ShowDialog()
  End Sub
  
  " Class constructor
  Public Sub New()
     MyBase.New()
     " Define button sizes and locations
     Me.btnOK.Location = New Point(100, 50)
     Me.btnOK.Size = New Size(100, 50)
     Me.btnOK.Text = "OK"
     Me.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK
     Me.btnCancel.Location = New Point(100, 125)
     Me.btnCancel.Size = New Size(100, 50)
     Me.btnCancel.Text = "Cancel"
     Me.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel
     
     Me.btnQuit.Location = New Point(100, 200)
     Me.btnQuit.Size = New Size(100, 50)
     Me.btnQuit.Text = "Exit"
     Me.btnQuit.DialogResult = System.Windows.Forms.DialogResult.Abort
     " Define form controls and caption
     Me.Controls.Add(btnOK)
     Me.Controls.Add(btnCancel)
     Me.Controls.Add(btnQuit)
     Me.Text = "Button Click Events"
  End Sub
  
  " Event handler for all three buttons
  Private Sub ButtonClicked(ByVal sender As System.Object, _
                            ByVal e As System.EventArgs) _
          Handles btnOK.Click, btnCancel.Click, btnQuit.Click
     If TypeOf sender Is Button Then
        Dim btn As Button = DirectCast(sender, Button)
        If btn.Name = "btnOK" Then
           Console.WriteLine("btnOK")
        ElseIf btn.Name = "btnCancel" Then
           Console.WriteLine("Cancel")
           Exit Sub
        Else 
           Me.Close()
        End If
     Else
        Throw New ArgumentException( _
              "The event was raised by an invalid object.")
     End If
  End Sub

End Class</source>

Hide a control

<source lang="vbnet">Imports System.Windows.Forms public class HideControl

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

End class

Public Class Form1

   Public val1 As Integer
   Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
       If val1 = 1 Then
           Button1.Visible = False
           val1 = 0
           Button2.Text = "Button1 Hidden"
       Else
           Button1.Visible = True
           val1 = 1
           Button2.Text = "Click Button2 to hide button1"
       End If
   End Sub
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
   End Sub

End Class

<Global.Microsoft.VisualBasic.rupilerServices.DesignerGenerated()> _ Partial Class Form1

   Inherits System.Windows.Forms.Form
   "Form overrides dispose to clean up the component list.
   <System.Diagnostics.DebuggerNonUserCode()> _
   Protected Overrides Sub Dispose(ByVal disposing As Boolean)
       If disposing AndAlso components IsNot Nothing Then
           components.Dispose()
       End If
       MyBase.Dispose(disposing)
   End Sub
   "Required by the Windows Form Designer
   Private components As System.ruponentModel.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.
   <System.Diagnostics.DebuggerStepThrough()> _
   Private Sub InitializeComponent()
       Me.Button1 = New System.Windows.Forms.Button
       Me.Button2 = New System.Windows.Forms.Button
       Me.SuspendLayout()
       "
       "Button1
       "
       Me.Button1.Location = New System.Drawing.Point(105, 65)
       Me.Button1.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
       Me.Button1.Name = "Button1"
       Me.Button1.Size = New System.Drawing.Size(253, 40)
       Me.Button1.TabIndex = 0
       Me.Button1.Text = "Button1"
       Me.Button1.UseVisualStyleBackColor = True
       Me.Button1.Visible = False
       "
       "Button2
       "
       Me.Button2.Location = New System.Drawing.Point(105, 162)
       Me.Button2.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
       Me.Button2.Name = "Button2"
       Me.Button2.Size = New System.Drawing.Size(253, 41)
       Me.Button2.TabIndex = 1
       Me.Button2.Text = "click Button2 to hide button1"
       Me.Button2.UseVisualStyleBackColor = True
       "
       "Form1
       "
       Me.AutoScaleDimensions = New System.Drawing.SizeF(8.0!, 15.0!)
       Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
       Me.ClientSize = New System.Drawing.Size(473, 300)
       Me.Controls.Add(Me.Button2)
       Me.Controls.Add(Me.Button1)
       Me.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
       Me.Name = "Form1"
       Me.Text = "Form1"
       Me.ResumeLayout(False)
   End Sub
   Friend WithEvents Button1 As System.Windows.Forms.Button
   Friend WithEvents Button2 As System.Windows.Forms.Button

End Class</source>

Read and Save controls on a form to a file

<source lang="vbnet">Option Strict On Imports System.IO Imports System.Drawing Imports System.Drawing.Drawing2D Imports System.Windows.Forms public class SaveReadControlsFile

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

End class

Public Class Form1

   Inherits System.Windows.Forms.Form
  1. 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
   Friend WithEvents Panel1 As System.Windows.Forms.Panel
   Friend WithEvents RichTextBox1 As System.Windows.Forms.RichTextBox
   Friend WithEvents ColorDialog1 As System.Windows.Forms.ColorDialog
   Friend WithEvents FontDialog1 As System.Windows.Forms.FontDialog
   Friend WithEvents SaveFileDialog1 As System.Windows.Forms.SaveFileDialog
   Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog
   Friend WithEvents btnChangeColor As System.Windows.Forms.Button
   Friend WithEvents btnChangeFont As System.Windows.Forms.Button
   Friend WithEvents btnSaveRTF As System.Windows.Forms.Button
   Friend WithEvents btnOpenRTF As System.Windows.Forms.Button
   Friend WithEvents btnWriteControls As System.Windows.Forms.Button
   Friend WithEvents btnReadControls As System.Windows.Forms.Button
   Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
   Friend WithEvents TextBox2 As System.Windows.Forms.TextBox
   Friend WithEvents TextBox3 As System.Windows.Forms.TextBox
   "Required by the Windows Form Designer
   Private components As System.ruponentModel.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.
   <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
       Me.Panel1 = New System.Windows.Forms.Panel()
       Me.RichTextBox1 = New System.Windows.Forms.RichTextBox()
       Me.ColorDialog1 = New System.Windows.Forms.ColorDialog()
       Me.FontDialog1 = New System.Windows.Forms.FontDialog()
       Me.SaveFileDialog1 = New System.Windows.Forms.SaveFileDialog()
       Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
       Me.btnChangeColor = New System.Windows.Forms.Button()
       Me.btnChangeFont = New System.Windows.Forms.Button()
       Me.btnSaveRTF = New System.Windows.Forms.Button()
       Me.btnOpenRTF = New System.Windows.Forms.Button()
       Me.btnWriteControls = New System.Windows.Forms.Button()
       Me.btnReadControls = New System.Windows.Forms.Button()
       Me.TextBox1 = New System.Windows.Forms.TextBox()
       Me.TextBox2 = New System.Windows.Forms.TextBox()
       Me.TextBox3 = New System.Windows.Forms.TextBox()
       Me.Panel1.SuspendLayout()
       Me.SuspendLayout()
       "
       "Panel1
       "
       Me.Panel1.Controls.AddRange(New System.Windows.Forms.Control() {Me.btnReadControls, Me.btnWriteControls, Me.btnOpenRTF, Me.btnSaveRTF, Me.btnChangeFont, Me.btnChangeColor})
       Me.Panel1.Dock = System.Windows.Forms.DockStyle.Bottom
       Me.Panel1.Location = New System.Drawing.Point(0, 222)
       Me.Panel1.Name = "Panel1"
       Me.Panel1.Size = New System.Drawing.Size(656, 64)
       Me.Panel1.TabIndex = 0
       "
       "RichTextBox1
       "
       Me.RichTextBox1.Location = New System.Drawing.Point(16, 8)
       Me.RichTextBox1.Name = "RichTextBox1"
       Me.RichTextBox1.Size = New System.Drawing.Size(336, 176)
       Me.RichTextBox1.TabIndex = 1
       Me.RichTextBox1.Text = "Mr. and Mrs. Dursley, of number four, Privet Drive, were proud to say that they w" & _
       "ere perfectly normal, thank you very much."
       "
       "btnChangeColor
       "
       Me.btnChangeColor.Location = New System.Drawing.Point(24, 24)
       Me.btnChangeColor.Name = "btnChangeColor"
       Me.btnChangeColor.Size = New System.Drawing.Size(88, 32)
       Me.btnChangeColor.TabIndex = 0
       Me.btnChangeColor.Text = "Change Color"
       "
       "btnChangeFont
       "
       Me.btnChangeFont.Location = New System.Drawing.Point(128, 24)
       Me.btnChangeFont.Name = "btnChangeFont"
       Me.btnChangeFont.Size = New System.Drawing.Size(88, 32)
       Me.btnChangeFont.TabIndex = 1
       Me.btnChangeFont.Text = "Change Font"
       "
       "btnSaveRTF
       "
       Me.btnSaveRTF.Location = New System.Drawing.Point(232, 24)
       Me.btnSaveRTF.Name = "btnSaveRTF"
       Me.btnSaveRTF.Size = New System.Drawing.Size(88, 32)
       Me.btnSaveRTF.TabIndex = 2
       Me.btnSaveRTF.Text = "Save RTF"
       "
       "btnOpenRTF
       "
       Me.btnOpenRTF.Location = New System.Drawing.Point(336, 24)
       Me.btnOpenRTF.Name = "btnOpenRTF"
       Me.btnOpenRTF.Size = New System.Drawing.Size(88, 32)
       Me.btnOpenRTF.TabIndex = 3
       Me.btnOpenRTF.Text = "Open RTF"
       "
       "btnWriteControls
       "
       Me.btnWriteControls.Location = New System.Drawing.Point(440, 24)
       Me.btnWriteControls.Name = "btnWriteControls"
       Me.btnWriteControls.Size = New System.Drawing.Size(88, 32)
       Me.btnWriteControls.TabIndex = 4
       Me.btnWriteControls.Text = "Write Controls"
       "
       "btnReadControls
       "
       Me.btnReadControls.Location = New System.Drawing.Point(544, 24)
       Me.btnReadControls.Name = "btnReadControls"
       Me.btnReadControls.Size = New System.Drawing.Size(88, 32)
       Me.btnReadControls.TabIndex = 5
       Me.btnReadControls.Text = "Read Controls"
       "
       "TextBox1
       "
       Me.TextBox1.Location = New System.Drawing.Point(400, 24)
       Me.TextBox1.Name = "TextBox1"
       Me.TextBox1.Size = New System.Drawing.Size(232, 20)
       Me.TextBox1.TabIndex = 2
       Me.TextBox1.Text = "TextBox1"
       "
       "TextBox2
       "
       Me.TextBox2.Location = New System.Drawing.Point(400, 68)
       Me.TextBox2.Name = "TextBox2"
       Me.TextBox2.Size = New System.Drawing.Size(232, 20)
       Me.TextBox2.TabIndex = 3
       Me.TextBox2.Text = "TextBox2"
       "
       "TextBox3
       "
       Me.TextBox3.Location = New System.Drawing.Point(400, 112)
       Me.TextBox3.Name = "TextBox3"
       Me.TextBox3.Size = New System.Drawing.Size(232, 20)
       Me.TextBox3.TabIndex = 4
       Me.TextBox3.Text = "TextBox3"
       "
       "Form1
       "
       Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
       Me.ClientSize = New System.Drawing.Size(656, 286)
       Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.TextBox3, Me.TextBox2, Me.TextBox1, Me.RichTextBox1, Me.Panel1})
       Me.Panel1.ResumeLayout(False)
       Me.ResumeLayout(False)
   End Sub
  1. End Region
   Private Sub btnWriteControls_Click(ByVal sender As System.Object, _
       ByVal e As System.EventArgs) Handles btnWriteControls.Click
       "Get a file
       Dim theFile As String
       SaveFileDialog1.InitialDirectory = Application.ExecutablePath
       SaveFileDialog1.DefaultExt = "hld" "custom format
       SaveFileDialog1.FileName = "myFile"
       SaveFileDialog1.Filter = "HLD Files (*.hld)|*.hld|All Files (*.*) | *.*"
       SaveFileDialog1.OverwritePrompt = True
       SaveFileDialog1.ShowDialog()
       theFile = SaveFileDialog1.FileName
       Dim fs As FileStream = New FileStream(theFile, FileMode.OpenOrCreate)
       Dim w As StreamWriter = New StreamWriter(fs)
       Dim c As Object
       For Each c In Me.Controls
        If TypeOf (c) Is TextBox Then
           Dim tbox As TextBox = CType(c, TextBox)
           w.WriteLine(tbox.Name & "=" & tbox.Text)
        End If
     Next
     w.Close()
     fs.Close()
   End Sub
   Private Sub btnReadControls_Click(ByVal sender As System.Object, _
       ByVal e As System.EventArgs) Handles btnReadControls.Click
       Dim theFile As String
       OpenFileDialog1.InitialDirectory = Application.ExecutablePath
       OpenFileDialog1.DefaultExt = "hld" "custom format
       OpenFileDialog1.FileName = "myFile"
       OpenFileDialog1.Filter = "HLD Files (*.hld)|*.hld|All Files (*.*) | *.*"
       OpenFileDialog1.ShowDialog()
       theFile = OpenFileDialog1.FileName
       Dim fs As FileStream = New FileStream(theFile, FileMode.Open)
       Dim r As StreamReader = New StreamReader(fs)
       Dim c As Object
       Dim tmpArray() As String
       For Each c In Me.Controls
        If TypeOf (c) Is TextBox Then
           Dim tbox As TextBox = CType(c, TextBox)
           tmpArray = Split(r.ReadLine(), "=")
           If tbox.Name = tmpArray(0) Then
              tbox.Text = tmpArray(1)
           End If
        End If
     Next
       r.Close()
   End Sub

End Class</source>

Set Control Parent

<source lang="vbnet">imports System imports System.Drawing imports System.Windows.Forms public class ControlParent : inherits Form

 Private WithEvents btn as Button
 public sub New()
   btn = new Button()
   btn.Location = new Point(50,50)
   btn.Size = new Size(100,23)
   btn.Text = "Relationships"
   Controls.Add(btn)
   btn.Parent = me
 end sub
 public shared sub Main() 
   Application.Run(new ControlParent())
 end sub
 private sub btn_Click(ByVal sender as object,ByVal e as EventArgs) Handles btn.Click
   Console.WriteLine("Button Parent:  " + btn.Parent.ToString())
   Console.WriteLine("Button HasChildren:  " + btn.HasChildren.ToString())
   Console.WriteLine("TopLevelControl:  " + btn.TopLevelControl.ToString())
   Console.WriteLine("Form HasChildren:  " + me.HasChildren.ToString())
   Console.WriteLine("Form Controls Count:  " + me.Controls.Count.ToString())
 end sub

end class</source>

Use Constrol"s Tag

<source lang="vbnet">imports System imports System.Drawing imports System.Windows.Forms public class Tags : inherits Form

 private lbl as Label
 public sub New()
   Size = new Size(300,200)
   lbl = new Label()
   lbl.Text = "Label..."
   lbl.AutoSize = true
   lbl.Parent = me
   lbl.Location = new Point(10,10)
   dim theEnum as new FontStyle()
   dim theStyles as FontStyle() = CType([Enum].GetValues(theEnum.GetType()), FontStyle())
   dim i as integer = 1
   dim style as FontStyle
   for each style in theStyles
     dim btn as new Button()
     btn.Parent = me
     btn.Location = new Point(25,25 * i)
     btn.Size = new Size(75,20)
     btn.Text = style.ToString()
     btn.Tag = style
     AddHandler btn.Click, AddressOf btn_Click
     i += 1
   next
 end sub
 public shared sub Main() 
   Application.Run(new Tags())
 end sub
 private sub btn_Click(ByVal sender as object,ByVal e as EventArgs)
   dim btn as Button = CType(sender, Button)
   dim fs as FontStyle = CType(btn.Tag, FontStyle)
   lbl.Font = new Font(lbl.Font, fs)
 end sub

end class</source>