Read and Save controls on a form to a file : Controls « GUI « VB.Net Tutorial






Read and Save controls on a form to a file
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

#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.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.
    <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

#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








14.73.Controls
14.73.1.Add Label to a formAdd Label to a form
14.73.2.Add TextBox to Form in codeAdd TextBox to Form in code
14.73.3.Check Control type
14.73.4.Cast event sender to control
14.73.5.Read and Save controls on a form to a fileRead and Save controls on a form to a file
14.73.6.Set Control ParentSet Control Parent
14.73.7.Add the Button control to the Form Controls collectionAdd the Button control to the Form Controls collection
14.73.8.Use Constrol's TagUse Constrol's Tag
14.73.9.Hide a controlHide a control