RekhaShah
asked on
add MRU List o Contextmenustrip in vb.net
Hi Experts,
My Windows desktop application has menu to open database files. I want to display 5 most recently used files as a contextmenustrip items. I have code to add it as a File Menu Item. But i am not using any menus. It is all graphical with big buttons and the button has contextmenustrip attached to it. How do I read these MRU files names and assign them dynamically to contextmenustrip? I am using Visual Studio 2008.
I will appreciat your help.
Thank you
My Windows desktop application has menu to open database files. I want to display 5 most recently used files as a contextmenustrip items. I have code to add it as a File Menu Item. But i am not using any menus. It is all graphical with big buttons and the button has contextmenustrip attached to it. How do I read these MRU files names and assign them dynamically to contextmenustrip? I am using Visual Studio 2008.
I will appreciat your help.
Thank you
where are you storing the file paths? In an array, list of string ....?
ASKER
I am storing my list in a public array. But how do i trigger the event to open the file?
ASKER
in the form load even, I call LoadMRUList. Then I add those list items to my contextMenustrip
For i = 1 To 5
If MRUListArray(i) <> "" Then
Me.MRUContextMenuStrip.Ite ms.Add(MRU ListArray( i))
End If
Next
So i can add 1 file. But next time I open a different file, I need to add this to mru list. If kind of replaces the first one and I always have only one entry.
If you have a sample code, will be great. Thanks
For i = 1 To 5
If MRUListArray(i) <> "" Then
Me.MRUContextMenuStrip.Ite
End If
Next
So i can add 1 file. But next time I open a different file, I need to add this to mru list. If kind of replaces the first one and I always have only one entry.
If you have a sample code, will be great. Thanks
Private Sub LoadMruList()
Dim file_name As String
For i As Integer = 1 To m_NumEntries
' Get the next file name and title.
file_name = GetSetting(m_ApplicationName, _
"MruList", "FileName" & i, "")
' See if we got anything.
If file_name.Length > 0 Then
' Save this file name.
MRUListArray(i) = file_name
End If
Next i
End Sub
Click on the context menu and then double click on the menu item, you should get this:
Private Sub ToolStripMenuItem1_Click(B yVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem1.Click
End Sub
and trigger your routine inside here, or you could add a handler everytime you add a menu (ie file path) to the menu
Private Sub ToolStripMenuItem1_Click(B
End Sub
and trigger your routine inside here, or you could add a handler everytime you add a menu (ie file path) to the menu
the handler you can make for that islike:
AddHandler ToolStripMenuItem1.Click, AddressOf sButton
and sButton will be just like above
Private Sub sButton(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
AddHandler ToolStripMenuItem1.Click, AddressOf sButton
and sButton will be just like above
Private Sub sButton(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
ASKER
let me get back to you tomorrow on it after trying out your suggestion. Thanks
ASKER
I have 3 buttons. 1. Open New File:
2. Open Existing File:I show OpenFileDialog
3. 3rd button would have Recently used database list(as a contextmenustrip). So when I click on this third button, it would display MRU, and upon clicking on one of the files, it would open this existing file.
it seems preety straightforward, but I can't seem to get it to work the way I want. If I had it as a menu item it would be very simple. i will appreciate if you have sample code(comlete code) to handle the click even on mru button.
2. Open Existing File:I show OpenFileDialog
3. 3rd button would have Recently used database list(as a contextmenustrip). So when I click on this third button, it would display MRU, and upon clicking on one of the files, it would open this existing file.
it seems preety straightforward, but I can't seem to get it to work the way I want. If I had it as a menu item it would be very simple. i will appreciate if you have sample code(comlete code) to handle the click even on mru button.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Hi,
I got it to work. Your solution was partially correct, instead of adding handler to button, I was suppose to add handler to ToolStripItem. Attaching the code for reference. This works. Thak you for guiding to the correct direction.
Here is the correct code that works.
Hi,
I got it to work. Your solution was partially correct, instead of adding handler to button, I was suppose to add handler to ToolStripItem. Attaching the code for reference. This works. Thak you for guiding to the correct direction.
I got it to work. Your solution was partially correct, instead of adding handler to button, I was suppose to add handler to ToolStripItem. Attaching the code for reference. This works. Thak you for guiding to the correct direction.
Here is the correct code that works.
Hi,
I got it to work. Your solution was partially correct, instead of adding handler to button, I was suppose to add handler to ToolStripItem. Attaching the code for reference. This works. Thak you for guiding to the correct direction.
ASKER
Here is the correct solution that works.
Private Sub MDIParent1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim tsi As ToolStripItem
m_MruList = New MruList(APP_NAME)
For i As Integer = 1 To 5
If MRUListArray(i) <> "" Then
tsi = MRUContextMenuStrip.Items.Add(MRUListArray(i))
tsi.Name = "P" & i.ToString("00000")
AddHandler tsi.Click, AddressOf tsi_Click
End If
Next i
btnMRU.ContextMenuStrip = MRUContextMenuStrip
End Sub
Private Sub tsi_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim tsi As ToolStripItem = CType(sender, ToolStripItem)
Debug.Print(tsi.Name & ", " & tsi.Text)
MsgBox(tsi.Text)
End Sub