Adding Menus
To add a menu to a web part, override CreateWebPartMenu to add MenuItem objects to
the web part's MenuItems collection. For example, the
following code adds a Save Settings item to the web part
menu:
Dim _mnuSave As MenuItem
Public Overrides Sub CreateWebPartMenu()
_mnuSave = New MenuItem("Save Settings", "mnuSave", _
New EventHandler(AddressOf _mnuSave_Click))
Me.WebPartMenu.MenuItems.Add(_mnuSave)
End Sub
Private Sub _mnuSave_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Try
Me.SaveProperties = Not _chkSave.Checked
Catch
_msg &= "You must be signed in as a contributor to save properties. "
End Try
End SubThe
MenuItem constructor sets the displayed name, ID, and
event handler for the menu item. In this case, the _mnuSave_Click event handler switches the SaveProperties setting for the web part on and off.
Menus don't
save their state: they are redrawn from scratch each time the page is displayed. That's why
a statement like _mnuSave.Checked = Not _mnuSave.Checked
doesn't toggle the checkmark on a menu item. Instead you must use a web part property or a
web control (such as the checkbox) to track the checked status of a menu
item.
The CreateMenu and CreateChildControls methods are not called in a fixed order, so
it's important to set web control properties in the OnPreRender event when working with web part menus. OnPreRender always occurs just before the web part is rendered. This code completes the Save Settings menu example by setting the control properties ...