Click here to Skip to main content
Click here to Skip to main content

MRU Menu Class

, 8 May 2004
Rate this:
Please Sign up or sign in to vote.
MRU Menu class is basically an ArrayList that will automatically populate a MenuItem in a MainMenu control. It will display the 5 most recent entries and exposes a Click event for you to respond to. You can also save the list to a file with the provided properties.

Sample Image - mruDemo.jpg

Introduction

I am currently working on a couple of programs which need a Most Recently Used files list in the MainMenu. Instead of coding this into each application, I decided to create a reusable class to handle this task for me.

Now, after adding the class to my project, all I have to do is add new file paths as needed, and the MruList class adds the appropriate file paths to the MenuItem I specified.

Declarations

The following needs to be declared to initialize the MRU list:

Public WithEvents theList As CjsDen.MruList

We need to add the initialization of the list to the form's load event:

Private Sub Form_Load(ByVal sender As Object,_
         ByVal e As System.EventArgs) Handles MyBase.Load
    'we need to initialize the mrulist in the forms load event
    theList = New CjsDen.MruList(mnuFileRecent)

End Sub

We also need to add code to handle the MruList's click event:

Public Sub MruFileOpen(ByVal mruPath As String)_
                      Handles theList.mru_click
        'Add code to handle here
        'mruPath returns the string of the clicked menuItem
        'no matter which one is clicked
End Sub

How to use the MRU List

Now, all we have to do is add file paths to the MRU list:

theList.AddNewFile("c:\myDocument.txt")

If you want to save the list, you can access it with any of the following properties:

  • MruListArray,
  • MruPath1,
  • MruPath2,
  • MruPath3,
  • MruPath4,
  • MurPath5

Conclusion

This is a very simple way to automate adding a MRU Menu into a number of projects quickly. I have looked this over several ways and have come across no side effects, but if you find anything buggy, let me know.

License

This article, along with any associated source code and files, is licensed under The GNU General Public License (GPLv3)

Share

About the Author

chad_ross
Product Manager
Canada Canada
No Biography provided

Comments and Discussions

 
GeneralMRU List PinmemberGeorge Hendrickson11-Nov-07 11:48 
GeneralRe: MRU List Pinmemberchad_ross11-Nov-07 15:09 
GeneralRe: MRU List PinmemberDidier Stevens30-Nov-07 3:05 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web01 | 2.8.140827.1 | Last Updated 9 May 2004
Article Copyright 2004 by chad_ross
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid