New to Telerik UI for WinForms? Download free 30-day trial

RadMenuItem Events

Usually you will handle the events of the objects that make up a menu, not the RadMenu itself.

RadMenuItem Events

The key event for the RadMenuItem object is the Click event, which is fired when the user selects the menu item or presses the associated shortcut key. If the menu item is designed to display check marks, then the ToggleStateChanging and ToggleStateChanged events fire when a check mark is applied to or removed from the RadMenuItem object.

  • ToggleStateChanging: Passes a StateChangingEventArgs parameter with properties for NewValue, OldValue and Cancel. Both NewValue and OldValue are ToggleState enumeration types with values Indeterminate, On and Off. If the Cancel argument is set to true the check-box does not change its state and the ToggleStatedChanged event does not fire.

Handling the ToggleStateChanging event

void radMenuItem2_ToggleStateChanging(object sender, StateChangingEventArgs args)
{
    if (args.NewValue == Telerik.WinControls.Enumerations.ToggleState.Indeterminate)
    {
        args.Cancel = true;
    }
}

Private Sub radMenuItem2_ToggleStateChanging(ByVal sender As Object, ByVal args As StateChangingEventArgs)
    If args.NewValue = Telerik.WinControls.Enumerations.ToggleState.Indeterminate Then
        args.Cancel = True
    End If
End Sub

  • ToggleStateChanged: This event fires when the check-box state changes between one of the ToggleState enumeration values of On, Off or Indeterminate. The StateChangedEventaArgs passed to this event handler contain the ToggleState property.

Handling the ToggleStateChanged event

void radMenuItem2_ToggleStateChanged(object sender, StateChangedEventArgs args)
{
    MessageBox.Show(args.ToggleState.ToString());
}

Private Sub radMenuItem2_ToggleStateChanged(ByVal sender As Object, ByVal args As StateChangedEventArgs)
    MessageBox.Show(args.ToggleState.ToString())
End Sub

RadMenuComboItem Events

For the RadMenuComboItem, you will probably want to work with the events of the embedded ComboBoxElement property. The example below uses the ComboBoxElement.SelectedIndexChanged event to get the currently selected combo box value.

Handling the SelectedIndexChanged event of RadMenuComboItem

void Form1_Load(object sender, EventArgs e)
{
    radMenuComboItem1.ComboBoxElement.SelectedIndexChanged += new Telerik.WinControls.UI.Data.PositionChangedEventHandler(ComboBoxElement_SelectedIndexChanged);
}
void ComboBoxElement_SelectedIndexChanged(object sender, EventArgs e)
{
    RadListDataItem item = (sender as RadDropDownListElement).SelectedItem as RadListDataItem;
    MessageBox.Show(item.Text);
}

Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
    AddHandler radMenuComboItem1.ComboBoxElement.SelectedIndexChanged, AddressOf ComboBoxElement_SelectedIndexChanged
End Sub
Private Sub ComboBoxElement_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
    Dim item As RadListDataItem = TryCast((TryCast(sender, RadDropDownListElement)).SelectedItem, RadListDataItem)
    MessageBox.Show(item.Text)
End Sub

RadMenuContentItem

Handle the events for the control assigned to RadMenuContentItem.ContentElement, not the content item itself. In the example below an event handler is attached to the Click event of a button.

Handling events for controls embedded in RadMenuContentItem

RadMenuContentItem buttonItem = new RadMenuContentItem();
RadButtonElement button = new RadButtonElement();
button.Text = "OK";
button.Click += new EventHandler(button_Click);
buttonItem.ContentElement = button;
radMenu1.Items.Add(buttonItem);

Dim buttonItem As New RadMenuContentItem()
Dim button As New RadButtonElement()
button.Text = "OK"
AddHandler button.Click, AddressOf button_Click
buttonItem.ContentElement = button
RadMenu1.Items.Add(buttonItem)

See Also

In this article