The code does a simple sanity check to see whether the sender is a ToolStripMenuItem. The last bit is the RecentsClick that responds when you click on the new dynamic menu. Add returns the new ToolStripMenuItem, and you attach an event handler. Notice that you have to refer to the parent menu’s DropDownItems property-not as intuitive as just Add-and call DropDownItems.Add method. Tell them I said it was OK.ĪddToRecents adds the filename string as the text for the dynamic menu. Note: By the way, when you write code this straightforward using named methods like OpenFile and AddToRecents, you don’t need comments. (You can skip that line if you like.) Finally, the text is put in the TextBox. String.Replace strips the carriage return characters. OpenFile uses basic File I/O to read the text file with the shared method File.ReadAllText. The OpenFile method is called and AddToRecents is called. FileOK casts the sender using DirectCast to an OpenFileDialog object (rather than using the OpenFileDialog1 object directly), making the code more portable. If the user clicks OK, OpenFileDialog1_FileOK runs. You can check the return value of ShowDialog or handle FileOK in an event of the OpenFileDialog, which is show as the last method of Listing 1. The click event sets some properties of an OpenFileDialog control and calls ShowDialog. In the code, the OpenToolStripMenuItem_Click event responds when you click the File|Open menu. (filename)ĪddHandler menu.Click, AddressOf RecentsClickĮnd Sub Private Sub OpenFileDialog1_FileOk( ByVal sender As System.Object, _īyVal e As ) _ĭim dialog As OpenFileDialog = DirectCast(sender, OpenFileDialog) If ( TypeOf sender Is ToolStripMenuItem = False) Then Return Dim menu As ToolStripMenuItem = CType(sender, _Įnd Sub Private Sub AddToRecents( ByVal filename As String) OpenFileDialog1.Filter = "Text Files (*.txt)|*.txt"Įnd Sub Private Function OpenFile( ByVal filename As String) As Integerĭim data As String = File.ReadAllText(filename)Įnd Function Private Sub RecentsClick( ByVal sender As Object, _ OpenFileDialog1.InitialDirectory = "C:TEMP" Private Sub OpenToolStripMenuItem_Click( ByVal sender _ Listing 1: Click Open, select a file, and create a dynamic sub-menu off of the Recent Files menu. When you Open the file, it is read into a TextBox and a dynamic menu is created.įigure 1: A simple text browser containing a multi-line TextBox and a MenuStrip. The code in Listing 1 is plain old vanilla VB.NET code behind a simple form with a File menu, an Open sub-menu, and a Recent Files sub-menu (see Figure 1). The basic behavior is to open a file and create a dynamic sub-menu with the name of the file and add that menu to the MenuStrip. Even Visual Studio tracks open files and projects in “recents” menus. ~wink~ Creating a Recent Submenu with the MenuStrip If you already know how to do all of these things, I won’t mind if you wait for the next article. It’s also cooler and better housekeeping. After the half-it is football season after all-the dynamic menu is added to a Command class, making the use of this technique a matter of importing the command class in any future application. If you know how to do that, I encourage you to read the article anyway. In this article, I will show you how to dynamically add ToolStripMenuItems to a MenuStrip. The MenuStrip is like a menu, but if you want to add a sub-menu it’s not as easy as invoking Add with an instance of a menu item. For example, if I have a Menu and it has a collection of element-like sub-menus, I am going to look automatically for a collection property and an add method. Re-inventing the wheel makes sense if you go from a rock wheel to a rubber one, but like things are easier to adopt when they are new if they are used like similar things that exist. I am not just talking about patterns like the Gang of Four GoF patterns I mean simple ways that things work too. Patterns are something we can get familiar with, consequently making like-things anticipatable and easier to use. We may make money when you click on links to our partners. When you add a sub-menu, another text box with 'Type Here' text opens below it.Ĭomplete the menu structure shown in the diagram content and product recommendations are editorially independent. In this example, let us add menu and sub-menu items.ĭrag and drop or double click on a MenuStrip control, to add it to the form.Ĭlick the Type Here text to open a text box and enter the names of the menu items or sub-menu items you want. Occurs when the MenuStrip is deactivated. Occurs when the user accesses the menu with the keyboard or mouse.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |