Mega Code Archive

 
Categories / VB.Net Tutorial / GUI Applications
 

Note pad

'Sams Teach Yourself Visual Basic .NET in 21 Days 'By Lowell Mauer 'Published 2001 'Sams Publishing 'ISBN 0672322714 Imports System.Windows.Forms Imports System.IO public class Note    public Shared Sub Main         Application.Run(New frmNote)    End Sub End class Public Class frmNote     Inherits System.Windows.Forms.Form     '***Added these two fields     Private m_sFileName As String     Private m_bDirty As Boolean     Public Property FileName() As String         Get             Return m_sFileName         End Get         Set(ByVal Value As String)             m_sFileName = Value             Me.Text = "Note - " & m_sFileName         End Set     End Property     Public Property Dirty() As Boolean         Get             Return m_bDirty         End Get         Set(ByVal Value As Boolean)             m_bDirty = Value             If Value = True Then                 Me.Text = "Note - " & m_sFileName & "*"             End If         End Set     End Property     Public Sub NewFile()         Me.txtText.Text = ""         Me.FileName = "Untitled"         Me.Dirty = False     End Sub #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         NewFile()     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     Private WithEvents mnuHelp As System.Windows.Forms.MenuItem     Private WithEvents mnuFileSep As System.Windows.Forms.MenuItem     Private WithEvents mnuEdit As System.Windows.Forms.MenuItem     Private WithEvents mnuMain As System.Windows.Forms.MainMenu     Private WithEvents mnuFileExit As System.Windows.Forms.MenuItem     Private WithEvents mnuHelpAbout As System.Windows.Forms.MenuItem     Private WithEvents mnuFileSave As System.Windows.Forms.MenuItem     Private WithEvents mnuFileSaveAs As System.Windows.Forms.MenuItem     Private WithEvents mnuFileOpen As System.Windows.Forms.MenuItem     Private WithEvents mnuFile As System.Windows.Forms.MenuItem     Private WithEvents mnuFileNew As System.Windows.Forms.MenuItem     Private WithEvents txtText As System.Windows.Forms.TextBox     Private WithEvents mnuEditCopy As System.Windows.Forms.MenuItem     Private WithEvents mnuEditCut As System.Windows.Forms.MenuItem     Private WithEvents mnuEditPaste As System.Windows.Forms.MenuItem     Private WithEvents dlgSave As System.Windows.Forms.SaveFileDialog     Private WithEvents dlgOpen As System.Windows.Forms.OpenFileDialog     'Required by the Windows Form Designer     Private components As System.ComponentModel.Container     '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.dlgSave = New System.Windows.Forms.SaveFileDialog()         Me.mnuEdit = New System.Windows.Forms.MenuItem()         Me.mnuEditCopy = New System.Windows.Forms.MenuItem()         Me.mnuFile = New System.Windows.Forms.MenuItem()         Me.mnuMain = New System.Windows.Forms.MainMenu()         Me.txtText = New System.Windows.Forms.TextBox()         Me.mnuFileSep = New System.Windows.Forms.MenuItem()         Me.mnuEditPaste = New System.Windows.Forms.MenuItem()         Me.mnuFileSaveAs = New System.Windows.Forms.MenuItem()         Me.mnuFileSave = New System.Windows.Forms.MenuItem()         Me.mnuFileExit = New System.Windows.Forms.MenuItem()         Me.mnuEditCut = New System.Windows.Forms.MenuItem()         Me.mnuHelp = New System.Windows.Forms.MenuItem()         Me.dlgOpen = New System.Windows.Forms.OpenFileDialog()         Me.mnuHelpAbout = New System.Windows.Forms.MenuItem()         Me.mnuFileNew = New System.Windows.Forms.MenuItem()         Me.mnuFileOpen = New System.Windows.Forms.MenuItem()         Me.dlgSave.FileName = "note1"         Me.dlgSave.Filter = "Text Files|*.txt|All Files|*.*"         Me.mnuEdit.Index = 1         Me.mnuEdit.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.mnuEditCut, Me.mnuEditCopy, Me.mnuEditPaste})         Me.mnuEdit.Text = "&Edit"         Me.mnuEditCopy.Index = 1         Me.mnuEditCopy.Shortcut = System.Windows.Forms.Shortcut.CtrlC         Me.mnuEditCopy.Text = "&Copy"         Me.mnuFile.Index = 0         Me.mnuFile.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.mnuFileNew, Me.mnuFileOpen, Me.mnuFileSave, Me.mnuFileSaveAs, Me.mnuFileSep, Me.mnuFileExit})         Me.mnuFile.Text = "&File"         Me.mnuMain.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.mnuFile, Me.mnuEdit, Me.mnuHelp})         Me.txtText.Dock = System.Windows.Forms.DockStyle.Fill         Me.txtText.Multiline = True         Me.txtText.ScrollBars = System.Windows.Forms.ScrollBars.Vertical         Me.txtText.Size = New System.Drawing.Size(292, 253)         Me.txtText.TabIndex = 0         Me.mnuFileSep.Index = 4         Me.mnuFileSep.Text = "-"         Me.mnuEditPaste.Index = 2         Me.mnuEditPaste.Shortcut = System.Windows.Forms.Shortcut.CtrlV         Me.mnuEditPaste.Text = "&Paste"         Me.mnuFileSaveAs.Index = 3         Me.mnuFileSaveAs.Text = "Save &As..."         Me.mnuFileSave.Index = 2         Me.mnuFileSave.Shortcut = System.Windows.Forms.Shortcut.CtrlS         Me.mnuFileSave.Text = "&Save"         Me.mnuFileExit.Index = 5         Me.mnuFileExit.Shortcut = System.Windows.Forms.Shortcut.CtrlQ         Me.mnuFileExit.Text = "E&xit"         Me.mnuEditCut.Index = 0         Me.mnuEditCut.Shortcut = System.Windows.Forms.Shortcut.CtrlX         Me.mnuEditCut.Text = "Cu&t"         Me.mnuHelp.Index = 2         Me.mnuHelp.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.mnuHelpAbout})         Me.mnuHelp.Text = "&Help"         Me.dlgOpen.Filter = "Text Files|*.txt|All Files|*.*"         Me.mnuHelpAbout.Index = 0         Me.mnuHelpAbout.Text = "&About"         Me.mnuFileNew.Index = 0         Me.mnuFileNew.Shortcut = System.Windows.Forms.Shortcut.CtrlN         Me.mnuFileNew.Text = "&New"         Me.mnuFileOpen.Index = 1         Me.mnuFileOpen.Shortcut = System.Windows.Forms.Shortcut.CtrlO         Me.mnuFileOpen.Text = "&Open..."         Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)         Me.ClientSize = New System.Drawing.Size(292, 253)         Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.txtText})         Me.Menu = Me.mnuMain         Me.Text = "Note"     End Sub     Private Sub mnuFileNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuFileNew.Click         If Me.Dirty = True Then             If MessageBox.Show("You have made changes to the file that will be lost. Continue?", "New File", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult().Yes Then                 NewFile()             End If         Else             NewFile()         End If     End Sub     Private Sub mnuFileOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuFileOpen.Click         Dim oFile As FileStream         Dim oReader As StreamReader         If Me.dlgOpen.ShowDialog = DialogResult().OK Then             'OK, we can try to open and read the file             Try                 Me.FileName = Me.dlgOpen.FileName                 oFile = File.OpenRead(Me.FileName)                 oReader = New StreamReader(oFile)                 Me.txtText.Text = oReader.ReadToEnd             Catch ex As Exception                 'just display the error for now                 MessageBox.Show(ex.Message, "Error Opening File", MessageBoxButtons.OK, MessageBoxIcon.Error)             Finally                 'remember to always close your readers and files                 oReader.Close()                 oFile.Close()             End Try         End If     End Sub     Private Sub mnuFileSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuFileSave.Click         'we should only try to save this file if it has a name         If Me.FileName <> "Untitled" Then             'OK, let's try saving the file             Dim oFile As FileStream             Dim oWriter As StreamWriter             Try                 oFile = File.OpenWrite(Me.FileName)                 'convert the contents of the TextBox to an array of Bytes                 oWriter = New StreamWriter(oFile)                 'and write to the file                 oWriter.Write(Me.txtText.Text)                 'and now we're not dirty                 Me.Dirty = False             Catch ex As Exception                 'for now, just display an error on an Exception                 MessageBox.Show(ex.Message, "Error Saving File", MessageBoxButtons.OK, MessageBoxIcon.Error)             Finally                 'always remember to close all writers and streams                 oWriter.Close()                 oFile.Close()             End Try         Else             'if not, go get a name             mnuFileSaveAs_Click(sender, e)         End If     End Sub     Private Sub mnuFileSaveAs_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuFileSaveAs.Click         If Me.dlgSave.ShowDialog = DialogResult().OK Then             'they've clicked OK, we can set the filename and save             FileName() = Me.dlgSave.FileName             'use the code already in the File, Save item to save the file             mnuFileSave_Click(sender, e)         End If     End Sub     Private Sub mnuFileExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuFileExit.Click         Me.Close()     End Sub     Private Sub mnuEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuEdit.Click         'is there any text selected?         If Me.txtText.SelectionLength > 0 Then             mnuEditCut.Enabled = True             mnuEditCopy.Enabled = True         Else             mnuEditCut.Enabled = False             mnuEditCopy.Enabled = False         End If         'is there anything on the Clipboard that we can paste here?         If Clipboard.GetDataObject.GetDataPresent(DataFormats.Text) Then             mnuEditPaste.Enabled = True         Else             mnuEditPaste.Enabled = False         End If     End Sub     Private Sub mnuEditCut_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuEditCut.Click         Clipboard.SetDataObject(Me.txtText.SelectedText)         Me.txtText.SelectedText = ""     End Sub     Private Sub mnuEditCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuEditCopy.Click         Clipboard.SetDataObject(Me.txtText.SelectedText)     End Sub     Private Sub mnuEditPaste_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuEditPaste.Click         Me.txtText.SelectedText = CType(Clipboard.GetDataObject.GetData(DataFormats.Text), String)     End Sub     Private Sub mnuHelpAbout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuHelpAbout.Click         Dim sMessage As String         sMessage = "Note -- a simple text editor" & ControlChars.CrLf & _             "Original in Teach Yourself Visual Basic.NET in 21 Days." & ControlChars.CrLf & _             "copyright 2001. Full rights to extend provided by the author."         MessageBox.Show(sMessage, "Note", MessageBoxButtons.OK, MessageBoxIcon.Information)     End Sub     Private Sub txtText_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtText.TextChanged         Me.Dirty = True     End Sub     Private Sub frmNote_Closing(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing         If Me.Dirty = True Then             If MessageBox.Show("You have made changes to the file that will be lost. Continue?", "New File", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = DialogResult().No Then                 e.Cancel = True             End If         End If     End Sub #End Region End Class