UML软件工程组织

VB.NET实现历史菜单
作者:张悦 本文选自:赛迪网 2003年04月01日

 

  历史菜单在很多软件中都有用到,如果你现在还不知道什么是历史菜单的话,就请你打开你的word中的"文件"菜单你会发现文件菜单里面有许多使用过的文件名。这些就是被称作历史菜单,他记录了你使用过的一些文件包括文件名,文件地址。但是它不会保存所有使用过的文件,而是只保存一部分,每当有新文件被打开后就会自动更新最早的一个文件。它的好处是可以快速打开上次或上几次没有编辑完的或还需要接着使用的文件。知道了什么是历史菜单之后就可以自己编写一个历史菜单将他放入我们的程序中了。

  在vs.net中新建立一个方案,然后添加一个openfiledialog控件,一个button控件,一个mainmenu控件,其中mainmenu控件是一个菜单控件,在它的下面建立5个子菜单。将5个子菜单的Visible属性都设置为false。Text属性设置为空。然后加入下面的代码。(vb.net编写的代码)

Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Button1.Click
Dim st As String
OpenFileDialog1.ShowDialog()
End Sub
Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object,
ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
'请注意MenuItem1是表示主菜单项,所以子菜单项是从MenuItem2开始的。
Dim stfilename As String
stfilename = OpenFileDialog1.FileName
If MenuItem5.Text <> "" Then
MenuItem6.Text = MenuItem5.Text
MenuItem5.Text = MenuItem4.Text
MenuItem6.Visible = True
End If
If MenuItem4.Text <> "" Then
MenuItem5.Text = MenuItem4.Text
MenuItem4.Text = MenuItem3.Text
MenuItem5.Visible = True
End If
If MenuItem3.Text <> "" Then
MenuItem4.Text = MenuItem3.Text
MenuItem3.Text = MenuItem2.Text
MenuItem4.Visible = True
End If
If MenuItem2.Text <> "" Then
MenuItem3.Text = MenuItem2.Text
MenuItem3.Visible = True
End If
MenuItem2.Text = stfielname
MenuItem2.Visible = True
End Sub


  在初始话的时候将Visible定为false和将text定为空,是为了不显示没有文件名的菜单项。 Button1是用来打开文件对话筐。OpenFileDialog1_FileOk是表示当按下文件对话筐的"确定"按钮后所要执行的语句。

  运行如图

  打开第一个文件时的情况

  打开5个文件时的情况,请注意第一个文件位置的变化

(注:在vb.net,win2000中通过)。




版权所有:UML软件工程组织