<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VB.Net_Tutorial%2FGUI_Applications%2FDynamic_Menu</id>
		<title>VB.Net Tutorial/GUI Applications/Dynamic Menu - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VB.Net_Tutorial%2FGUI_Applications%2FDynamic_Menu"/>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net_Tutorial/GUI_Applications/Dynamic_Menu&amp;action=history"/>
		<updated>2026-04-06T03:12:23Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VB.Net_Tutorial/GUI_Applications/Dynamic_Menu&amp;diff=3720&amp;oldid=prev</id>
		<title> в 16:40, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net_Tutorial/GUI_Applications/Dynamic_Menu&amp;diff=3720&amp;oldid=prev"/>
				<updated>2010-05-26T16:40:30Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 16:40, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VB.Net_Tutorial/GUI_Applications/Dynamic_Menu&amp;diff=3721&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net_Tutorial/GUI_Applications/Dynamic_Menu&amp;diff=3721&amp;oldid=prev"/>
				<updated>2010-05-26T12:56:26Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Add and remove menu item for File Menu (Recent file list menuitem)==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&amp;quot;Visual Basic 2005 Programmer&amp;quot;s Reference&lt;br /&gt;
&amp;quot;by Rod Stephens (Author) &lt;br /&gt;
&amp;quot;# Publisher: Wrox (October 21, 2005)&lt;br /&gt;
&amp;quot;# Language: English&lt;br /&gt;
&amp;quot;# ISBN-10: 0764571982&lt;br /&gt;
&amp;quot;# ISBN-13: 978-0764571985&lt;br /&gt;
Imports System.Windows.Forms&lt;br /&gt;
Imports System.IO&lt;br /&gt;
public class DynamicMenuItemForFileMenu&lt;br /&gt;
   public Shared Sub Main&lt;br /&gt;
        Application.Run(New Form1)&lt;br /&gt;
   End Sub&lt;br /&gt;
End class&lt;br /&gt;
&lt;br /&gt;
Public Class MruList&lt;br /&gt;
    Private m_ApplicationName As String&lt;br /&gt;
    Private m_FileMenu As ToolStripMenuItem&lt;br /&gt;
    Private m_NumEntries As Integer&lt;br /&gt;
    Private m_FileNames As Collection&lt;br /&gt;
    Private m_MenuItems As Collection&lt;br /&gt;
    Public Event OpenFile(ByVal file_name As String)&lt;br /&gt;
    Public Sub New(ByVal application_name As String, ByVal file_menu As ToolStripMenuItem, ByVal num_entries As Integer)&lt;br /&gt;
        m_ApplicationName = application_name&lt;br /&gt;
        m_FileMenu = file_menu&lt;br /&gt;
        m_NumEntries = num_entries&lt;br /&gt;
        m_FileNames = New Collection&lt;br /&gt;
        m_MenuItems = New Collection&lt;br /&gt;
        &amp;quot; Load saved file names from the Registry.&lt;br /&gt;
        LoadMruList()&lt;br /&gt;
        &amp;quot; Display the MRU list.&lt;br /&gt;
        DisplayMruList()&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot; Load previously saved file names from the Registry.&lt;br /&gt;
    Private Sub LoadMruList()&lt;br /&gt;
        Dim file_name As String&lt;br /&gt;
        For i As Integer = 1 To m_NumEntries&lt;br /&gt;
            &amp;quot; Get the next file name and title.&lt;br /&gt;
            file_name = GetSetting(m_ApplicationName, _&lt;br /&gt;
                &amp;quot;MruList&amp;quot;, &amp;quot;FileName&amp;quot; &amp;amp; i, &amp;quot;&amp;quot;)&lt;br /&gt;
            &amp;quot; See if we got anything.&lt;br /&gt;
            If file_name.Length &amp;gt; 0 Then&lt;br /&gt;
                &amp;quot; Save this file name.&lt;br /&gt;
                m_FileNames.Add(file_name, file_name)&lt;br /&gt;
            End If&lt;br /&gt;
        Next i&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot; Save the MRU list into the Registry.&lt;br /&gt;
    Private Sub SaveMruList()&lt;br /&gt;
        &amp;quot; Remove previous entries.&lt;br /&gt;
        If GetSetting(m_ApplicationName, &amp;quot;MruList&amp;quot;, _&lt;br /&gt;
         &amp;quot;FileName1&amp;quot;, &amp;quot;&amp;quot;).Length &amp;gt; 0 Then&lt;br /&gt;
            DeleteSetting(m_ApplicationName, &amp;quot;MruList&amp;quot;)&lt;br /&gt;
        End If&lt;br /&gt;
        &amp;quot; Make the new entries.&lt;br /&gt;
        For i As Integer = 1 To m_FileNames.Count&lt;br /&gt;
            SaveSetting(m_ApplicationName, _&lt;br /&gt;
                &amp;quot;MruList&amp;quot;, &amp;quot;FileName&amp;quot; &amp;amp; i, _&lt;br /&gt;
                m_FileNames(i).ToString)&lt;br /&gt;
        Next i&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot; Display the MRU list.&lt;br /&gt;
    Private Sub DisplayMruList()&lt;br /&gt;
        &amp;quot; Remove old menu items from the File menu.&lt;br /&gt;
        For Each mnu As ToolStripItem In m_MenuItems&lt;br /&gt;
            m_FileMenu.DropDownItems.Remove(mnu)&lt;br /&gt;
        Next mnu&lt;br /&gt;
        m_MenuItems = New Collection&lt;br /&gt;
        &amp;quot; See if we have any file names.&lt;br /&gt;
        If m_FileNames.Count &amp;gt; 0 Then&lt;br /&gt;
            &amp;quot; Make the separator.&lt;br /&gt;
            Dim sep As New ToolStripSeparator()&lt;br /&gt;
            m_MenuItems.Add(sep)&lt;br /&gt;
            m_FileMenu.DropDownItems.Add(sep)&lt;br /&gt;
            &amp;quot; Make the other menu items.&lt;br /&gt;
            Dim mnu As ToolStripMenuItem&lt;br /&gt;
            For i As Integer = 1 To m_FileNames.Count&lt;br /&gt;
                mnu = New ToolStripMenuItem()&lt;br /&gt;
                mnu.Text = &amp;quot;&amp;amp;&amp;quot; &amp;amp; i &amp;amp; &amp;quot; &amp;quot; &amp;amp; _&lt;br /&gt;
                    New FileInfo(m_FileNames(i).ToString).Name&lt;br /&gt;
                AddHandler mnu.Click, AddressOf MruItem_Click&lt;br /&gt;
                m_MenuItems.Add(mnu)&lt;br /&gt;
                m_FileMenu.DropDownItems.Add(mnu)&lt;br /&gt;
            Next i&lt;br /&gt;
        End If&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot; MRU menu item event handler.&lt;br /&gt;
    Private Sub MruItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)&lt;br /&gt;
        Dim mnu As ToolStripMenuItem&lt;br /&gt;
        mnu = DirectCast(sender, ToolStripMenuItem)&lt;br /&gt;
        &amp;quot; Find the menu item that raised this event.&lt;br /&gt;
        For i As Integer = 1 To m_FileNames.Count&lt;br /&gt;
            &amp;quot; See if this is the item. (Add 1 for the separator.)&lt;br /&gt;
            If m_MenuItems(i + 1) Is mnu Then&lt;br /&gt;
                &amp;quot; This is the item. Raise the OpenFile &lt;br /&gt;
                &amp;quot; event for its file name.&lt;br /&gt;
                RaiseEvent OpenFile(m_FileNames(i).ToString)&lt;br /&gt;
                Exit For&lt;br /&gt;
            End If&lt;br /&gt;
        Next i&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot; Add a file to the MRU list.&lt;br /&gt;
    Public Sub Add(ByVal file_name As String)&lt;br /&gt;
        &amp;quot; Remove this file from the MRU list&lt;br /&gt;
        &amp;quot; if it is present.&lt;br /&gt;
        Dim i As Integer = FileNameIndex(file_name)&lt;br /&gt;
        If i &amp;gt; 0 Then m_FileNames.Remove(i)&lt;br /&gt;
        &amp;quot; Add the item to the begining of the list.&lt;br /&gt;
        If m_FileNames.Count &amp;gt; 0 Then&lt;br /&gt;
            m_FileNames.Add(file_name, file_name, m_FileNames.Item(1))&lt;br /&gt;
        Else&lt;br /&gt;
            m_FileNames.Add(file_name, file_name)&lt;br /&gt;
        End If&lt;br /&gt;
        &amp;quot; If the list is too long, remove the last item.&lt;br /&gt;
        If m_FileNames.Count &amp;gt; m_NumEntries Then&lt;br /&gt;
            m_FileNames.Remove(m_NumEntries + 1)&lt;br /&gt;
        End If&lt;br /&gt;
        &amp;quot; Display the list.&lt;br /&gt;
        DisplayMruList()&lt;br /&gt;
        &amp;quot; Save the updated list.&lt;br /&gt;
        SaveMruList()&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot; Return the index of this file in the list.&lt;br /&gt;
    Private Function FileNameIndex(ByVal file_name As String) As Integer&lt;br /&gt;
        For i As Integer = 1 To m_FileNames.Count&lt;br /&gt;
            If m_FileNames(i).ToString = file_name Then Return i&lt;br /&gt;
        Next i&lt;br /&gt;
        Return 0&lt;br /&gt;
    End Function&lt;br /&gt;
    &amp;quot; Remove a file from the MRU list.&lt;br /&gt;
    Public Sub Remove(ByVal file_name As String)&lt;br /&gt;
        &amp;quot; See if the file is present.&lt;br /&gt;
        Dim i As Integer = FileNameIndex(file_name)&lt;br /&gt;
        If i &amp;gt; 0 Then&lt;br /&gt;
            &amp;quot; Remove the File.&lt;br /&gt;
            m_FileNames.Remove(i)&lt;br /&gt;
            &amp;quot; Display the list.&lt;br /&gt;
            DisplayMruList()&lt;br /&gt;
            &amp;quot; Save the updated list.&lt;br /&gt;
            SaveMruList()&lt;br /&gt;
        End If&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
Public Class Form1&lt;br /&gt;
    Private WithEvents m_MruList As MruList&lt;br /&gt;
    &amp;quot; Initialize the MRU list.&lt;br /&gt;
    Private Sub Form1_Load(ByVal sender As Object, _&lt;br /&gt;
     ByVal e As System.EventArgs) Handles Me.Load&lt;br /&gt;
        m_MruList = New MruList(&amp;quot;SdiMruList&amp;quot;, mnuFile, 4)&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot; Let the user open a file.&lt;br /&gt;
    Private Sub mnuFileOpen_Click(ByVal sender As System.Object, _&lt;br /&gt;
     ByVal e As System.EventArgs) Handles mnuFileOpen.Click&lt;br /&gt;
        If dlgOpen.ShowDialog() = Windows.Forms.DialogResult.OK Then&lt;br /&gt;
            OpenFile(dlgOpen.FileName)&lt;br /&gt;
        End If&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot; Open a file selected from the MRU list.&lt;br /&gt;
    Private Sub m_MruList_OpenFile(ByVal file_name As String) _&lt;br /&gt;
     Handles m_MruList.OpenFile&lt;br /&gt;
        OpenFile(file_name)&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot; Open a file and add it to the MRU list.&lt;br /&gt;
    Private Sub OpenFile(ByVal file_name As String)&lt;br /&gt;
        txtContents.Text = File.ReadAllText(file_name)&lt;br /&gt;
        txtContents.Select(0, 0)&lt;br /&gt;
        m_MruList.Add(file_name)&lt;br /&gt;
        Me.Text = &amp;quot;SdiEditMRU [&amp;quot; &amp;amp; New FileInfo(file_name).Name &amp;amp; &amp;quot;]&amp;quot;&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
&amp;lt;Global.Microsoft.VisualBasic.rupilerServices.DesignerGenerated()&amp;gt; _&lt;br /&gt;
Partial Public Class Form1&lt;br /&gt;
    Inherits System.Windows.Forms.Form&lt;br /&gt;
    &amp;quot;Form overrides dispose to clean up the component list.&lt;br /&gt;
    &amp;lt;System.Diagnostics.DebuggerNonUserCode()&amp;gt; _&lt;br /&gt;
    Protected Overrides Sub Dispose(ByVal disposing As Boolean)&lt;br /&gt;
        If disposing AndAlso components IsNot Nothing Then&lt;br /&gt;
            components.Dispose()&lt;br /&gt;
        End If&lt;br /&gt;
        MyBase.Dispose(disposing)&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot;Required by the Windows Form Designer&lt;br /&gt;
    Private components As System.ruponentModel.IContainer&lt;br /&gt;
    &amp;quot;NOTE: The following procedure is required by the Windows Form Designer&lt;br /&gt;
    &amp;quot;It can be modified using the Windows Form Designer.  &lt;br /&gt;
    &amp;quot;Do not modify it using the code editor.&lt;br /&gt;
    &amp;lt;System.Diagnostics.DebuggerStepThrough()&amp;gt; _&lt;br /&gt;
    Private Sub InitializeComponent()&lt;br /&gt;
        Me.MenuStrip1 = New System.Windows.Forms.MenuStrip&lt;br /&gt;
        Me.mnuFile = New System.Windows.Forms.ToolStripMenuItem&lt;br /&gt;
        Me.mnuFileOpen = New System.Windows.Forms.ToolStripMenuItem&lt;br /&gt;
        Me.txtContents = New System.Windows.Forms.TextBox&lt;br /&gt;
        Me.dlgOpen = New System.Windows.Forms.OpenFileDialog&lt;br /&gt;
        Me.MenuStrip1.SuspendLayout()&lt;br /&gt;
        Me.SuspendLayout()&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;MenuStrip1&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuFile})&lt;br /&gt;
        Me.MenuStrip1.Location = New System.Drawing.Point(0, 0)&lt;br /&gt;
        Me.MenuStrip1.Name = &amp;quot;MenuStrip1&amp;quot;&lt;br /&gt;
        Me.MenuStrip1.Size = New System.Drawing.Size(292, 24)&lt;br /&gt;
        Me.MenuStrip1.TabIndex = 9&lt;br /&gt;
        Me.MenuStrip1.Text = &amp;quot;MenuStrip1&amp;quot;&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;mnuFile&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.mnuFile.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuFileOpen})&lt;br /&gt;
        Me.mnuFile.Name = &amp;quot;mnuFile&amp;quot;&lt;br /&gt;
        Me.mnuFile.Size = New System.Drawing.Size(44, 20)&lt;br /&gt;
        Me.mnuFile.Text = &amp;quot;&amp;amp;File&amp;quot;&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;mnuFileOpen&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.mnuFileOpen.Name = &amp;quot;mnuFileOpen&amp;quot;&lt;br /&gt;
        Me.mnuFileOpen.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.O), System.Windows.Forms.Keys)&lt;br /&gt;
        Me.mnuFileOpen.Size = New System.Drawing.Size(168, 22)&lt;br /&gt;
        Me.mnuFileOpen.Text = &amp;quot;&amp;amp;Open&amp;quot;&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;txtContents&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.txtContents.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _&lt;br /&gt;
                    Or System.Windows.Forms.AnchorStyles.Left) _&lt;br /&gt;
                    Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)&lt;br /&gt;
        Me.txtContents.Location = New System.Drawing.Point(0, 24)&lt;br /&gt;
        Me.txtContents.Multiline = True&lt;br /&gt;
        Me.txtContents.Name = &amp;quot;txtContents&amp;quot;&lt;br /&gt;
        Me.txtContents.Size = New System.Drawing.Size(292, 249)&lt;br /&gt;
        Me.txtContents.TabIndex = 8&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;Form1&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)&lt;br /&gt;
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font&lt;br /&gt;
        Me.ClientSize = New System.Drawing.Size(292, 273)&lt;br /&gt;
        Me.Controls.Add(Me.txtContents)&lt;br /&gt;
        Me.Controls.Add(Me.MenuStrip1)&lt;br /&gt;
        Me.Name = &amp;quot;Form1&amp;quot;&lt;br /&gt;
        Me.Text = &amp;quot;SdiEditMRU []&amp;quot;&lt;br /&gt;
        Me.MenuStrip1.ResumeLayout(False)&lt;br /&gt;
        Me.MenuStrip1.PerformLayout()&lt;br /&gt;
        Me.ResumeLayout(False)&lt;br /&gt;
        Me.PerformLayout()&lt;br /&gt;
    End Sub&lt;br /&gt;
    Friend WithEvents MenuStrip1 As System.Windows.Forms.MenuStrip&lt;br /&gt;
    Friend WithEvents mnuFile As System.Windows.Forms.ToolStripMenuItem&lt;br /&gt;
    Friend WithEvents mnuFileOpen As System.Windows.Forms.ToolStripMenuItem&lt;br /&gt;
    Friend WithEvents txtContents As System.Windows.Forms.TextBox&lt;br /&gt;
    Friend WithEvents dlgOpen As System.Windows.Forms.OpenFileDialog&lt;br /&gt;
End Class&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>