To reproduce: 1. Drop RadApplicationMenu from the toolbox on to the windows form. 2. Click on the control to open menu and select "Add new > New RadMenuSeparatorItem" option to add new item. 3. Save the form. 4. Press Ctrl+Z to undo changes. Here added RadMenuSeparatorItem is removed from the control. 5. Now press Ctrl+Y to Redo the changes. Here added item is not added again after performing Redo action.
Please refer to the attached sample project.
1. Run the application, Excel will be opened.
2. In the Add-ins tab, click button2. A form with a RadMenu will be shown.
3. Close Excel but leave the form opened. As a result Excel hangs.
This is really bad for usability. When a user clicks on a seperator by accident the menu closes and nothing happens.
Use attached to reproduce. - open the menu and press the down arrow. This disabled items should not be selected. Woekaround: public class MyMenuItem : RadMenuItem { public MyMenuItem() : base() { } public MyMenuItem(string text) : base(text) { } protected override RadDropDownMenu CreateDropDownMenu() { return new MyDropDown(this); } protected override Type ThemeEffectiveType { get { return typeof(RadMenuItem); } } } public class MyDropDown : RadDropDownMenu { public MyDropDown(RadElement owner) : base(owner) { } protected override bool ProcessUpDownNavigationKey(bool isUp) { var selectedItem = this.GetSelectedItem(); RadItem nextItem = selectedItem; do { nextItem = this.GetNextItem(nextItem, !isUp); } while (!nextItem.Enabled); this.SelectItem(nextItem); return true; } public override string ThemeClassName { get { return typeof(RadDropDownMenu).FullName; } set { } } }
To reproduce: - Add an item and then use the Clear method. - The arrow is still visible. Workaround: radMenuItem2.Layout.ArrowPrimitive.Visibility = Telerik.WinControls.ElementVisibility.Collapsed;
To reproduce: Add a RadMenu and a RadMenuItem. To the RadMenuItem add another items, make some of them disabled. Open the first menu item and navigate with the arrows, you will see that the disabled items are selected but no visually. They should be skipped during navigation Workaround: Use the following custom RadMenuItem. The navigation logic is overriden in the RadDropDownMenu: public class MyMenuItem : RadMenuItem { public MyMenuItem() : base() { } public MyMenuItem(string text) : base(text) { } protected override RadDropDownMenu CreateDropDownMenu() { return new MyDropDown(this); } protected override Type ThemeEffectiveType { get { return typeof(RadMenuItem); } } } public class MyDropDown : RadDropDownMenu { public MyDropDown(RadElement owner) :base(owner) { } protected override bool ProcessUpDownNavigationKey(bool isUp) { var selectedItem = this.GetSelectedItem(); RadItem nextItem = selectedItem; var itemIndex = this.Items.IndexOf(selectedItem); for (int i = itemIndex; i < this.Items.Count - itemIndex; i++) { nextItem = this.GetNextItem(nextItem, !isUp); if (nextItem.Enabled) { break; } } this.SelectItem(nextItem); return true; } public override string ThemeClassName { get { return typeof(RadDropDownMenu).FullName; } set { } } }
Note: this problem is reproducible with RadTextBoxControl as well. The Enter and Leave events also don't fire when RadTextBoxControl is inside a RadPopupContainer Resolution: Case 1: RadTextBoxElement is not a control and do not have validation events. Use RadTextBox with RadMenuHostItem instead: RadTextBox tb = new RadTextBox(); RadMenuHostItem item = new RadMenuHostItem(tb); tb.Validating += Tb_Validating; item.MinSize = new Size(50, 20); radMenu1.Items.Add(item); Case 2: RadPopupEditor has message filter which is responsible for closing the popup and it intercept the leave and enter messages. Use GotFocus and LostFocus instead.
Such a functionality needs to be defined on an application level. In the 2018 R2 release we have added Recently Used Menu items in the Visual Style Builder application and the approach there can serve as an example.
Th attached gif file illustrates the desired behavior which is supported in the MS MenuStrip.
Use attached to reproduce. Workaround: private void Item_Click(object sender, EventArgs e) { menu.DropDown.ClosePopup(new PopupCloseInfo(RadPopupCloseReason.CloseCalled,null)); }
How to reproduce: create a RadMenu and set the VisualStudio2012Dark theme Workaround: use the attached custom theme
Introduce menu merge when the MDI children are in RadDock
Improve the extensibility of RadMenuItem to allow easy layout modifications.
Example: http://www.telerik.com/help/aspnet-ajax/menu-items-xml.html
Examples: http://www.telerik.com/help/aspnet-ajax/menu-data-binding-overview.html
RadMenuItem should be able to be as wide as the Image in it, if there is not text.
Currently RadMenu wraps its items when there is no enough space in the parent container. A possible alternative would be to implement scrolling.
For RadMenu there should be a property which determines whether the accelerator keys are underlined even when the RadMenu is not focused. The available options for that menu should be Yes, No and WindowsDefined
Add functionality (DropDownNeeded event for example) for load on demand for child menu items in RadMenu.
How to reproduce: check the attached project and video Workaround: public partial class RadForm1 : Telerik.WinControls.UI.RadForm { public RadForm1() { InitializeComponent(); this.LostFocus += RadForm1_LostFocus1; } private void RadForm1_LostFocus1(object sender, EventArgs e) { //Workaround this.radMenu1.GetType().GetField("shouldShowChildren", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).SetValue(this.radMenu1, false); } }