Click here to Skip to main content
Licence GPL3
First Posted 8 May 2004
Views 42,153
Downloads 90
Bookmarked 25 times

MRU Menu Class

By chad_ross | 8 May 2004
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.

1

2
1 vote, 11.1%
3
4 votes, 44.4%
4
4 votes, 44.4%
5
4.00/5 - 9 votes
μ 4.00, σa 1.24 [?]

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)

About the Author

chad_ross

Product Manager

Canada Canada

Member


Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
GeneralMRU List PinmemberGeorge Hendrickson12:48 11 Nov '07  
GeneralRe: MRU List Pinmemberchad_ross16:09 11 Nov '07  
GeneralRe: MRU List PinmemberDidier Stevens4:05 30 Nov '07  

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.

Permalink | Advertise | Privacy | Mobile
Web02 | 2.5.120210.1 | Last Updated 9 May 2004
Article Copyright 2004 by chad_ross
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid