To reproduce: 1. Add a RadCommandBar with several items 2. Add CommandBarTextBox and change its size to have 200 px width . 3. Set the CommandBarTextBox.TextBoxElement.TextAlign property to Right in order to align the text to the right. The designer shows the correct text alignment. However, this setting is not serialized in the designer file and when you run the application the text is left aligned.
To reproduce: - Add some controls to a command bar. - Get the PreferredSize like this: Console.WriteLine(radCommandBar1.PreferredSize.ToString()); Workaround: class MyCommandBar : RadCommandBar { public override Size GetPreferredSize(Size proposedSize) { if (proposedSize.Width == 0 && proposedSize.Height == 0) { return this.Size; } return base.GetPreferredSize(proposedSize); } }
Workaround: set the RadCommandBar.EnableRadAccessibilityObjects property to false.
To reproduce: - Add RadCommanBar to a form and the shown and close the form several times.
Workaround: this.commandBarSplitButton1.MinSize = new Size(this.commandBarSplitButton1.Size.Width + 10, 0);
Workaround: use the attached below theme files. How custom themes can be loaded - http://www.telerik.com/help/winforms/themes-using-custom-themes.html
To reproduce: 1. Add a RadCommandBar with a CommandBarButton. 2. Add a RadDateTimePicker, a RadMultiColumnComboBox, a ComboBox, a DateTimePicker. Subscribe to their Validating event. 3. Add a shortcut for the CommandbarButton: Me.CommandBarButton1.ShowKeyboardCues = True Me.CommandBarButton1.UseMnemonic = True Me.CommandBarButton1.Shortcuts.Add(New RadShortcut(Keys.Alt, Keys.F)) Note that when you focus one of the added controls in 2. and press Alt+F, the CommandBarButton.Click event is fired, but the Validating event for the previously focused control is not fired. This behavior is not observed for RadButton for example. Workaround: Public Class Form1 Protected Overrides Function ProcessCmdKey(ByRef msg As Message, keyData As Keys) As Boolean Select Case keyData Case (Keys.Alt Or Keys.F) CommandBarButton1.Focus() CommandBarButton1.PerformClick() Exit Select End Select End Class
Workaround: public partial class RadForm1 : Telerik.WinControls.UI.RadForm { public RadForm1() { InitializeComponent(); this.commandBarDropDownButton2.DropDownMenu.DropDownOpening += DropDownMenu_DropDownOpening; } private void DropDownMenu_DropDownOpening(object sender, CancelEventArgs e) { if (this.WindowState == FormWindowState.Maximized) { RadDropDownMenu dMenu = sender as RadDropDownMenu; RadPopupOpeningEventArgs eventArgs = (RadPopupOpeningEventArgs)e; eventArgs.CustomLocation = new System.Drawing.Point(eventArgs.CustomLocation.X + this.commandBarDropDownButton2.Size.Width, eventArgs.CustomLocation.Y); } } }
The issue exists with RadMenuItem as well! Workaround: public class CustomCommandBarButton : CommandBarButton { protected override void OnClick(EventArgs e) { MouseEventArgs args = e as MouseEventArgs; if (args.Button == System.Windows.Forms.MouseButtons.Left) { base.OnClick(e); } } protected override Type ThemeEffectiveType { get { return typeof(CommandBarButton); } } }
To reproduce: add a RadCommandBar to the form with several CommandBarStripElements. Change the Name property for one of the CommandBarStripElements at design time. You will notice that the new name is not serialized in the designer file.
To reproduce: Add a RadCommandBar with a row and a strip. Add a CommandBarSplitButton and subscribe to its Click event. You will see that when you click the arrow button the event will be fired. In result you cannot distinguish whether the arrow button is clicked. Workaround: private bool arrowButtonClicked; void ArrowPart_Click(object sender, EventArgs e) { this.arrowButtonClicked = true; //... CommandBarSplitButton.ArrowPart logic } void button_Click(object sender, EventArgs e) { if (this.arrowButtonClicked) { this.arrowButtonClicked = false; return; } //...CommandBarSplitButton logic }
To reproduce: Add a RadCommandBar, add some rows, strips and buttons. Apply any of the following themes: Office2010Black, Office2010Blue or VisualStudio2012Light . You will notice that the whole RadCommandBar has no theming. Workaround: Download the theme files below and apply them as follows: ThemeResolutionService.LoadPackageFile(@"themPath/theme.tssp"); ThemeResolutionService.ApplicationThemeName = "VisualStudio2012Light";
To reproduce: - Remove and dispose a strip at runtime: private void BRemoveItems_Click(object sender, EventArgs e) { if (this.commandBarRowElement1.Strips.Count > 1) { if (this.commandBarRowElement1.Strips[1] is MyRadStripElement) { MyRadStripElement stripForRemoval = (MyRadStripElement)this.commandBarRowElement1.Strips[1]; this.commandBarRowElement1.Strips.Remove(stripForRemoval); stripForRemoval.Dispose(); } } } Workaround: dispose the item before remove it.
Since the IsChecked property is obsolete one cannot use simple data binding to bind the control.
DECLINED: RadCommandBar assigns the DesiredLocation of each strip on the first layout pass and keeps this value until a different one is explicitly specified (via drag or via setting the property). The difference in the initial DesiredSize of the strips (depending on whether they have the grip/overflow button collapsed) results in different initial DesiredLocation settings. The proper way to avoid the gaps is to explicitly set the DesiredLocation property of each strip when collapsing the grips and overflow buttons. To reproduce: 1.Add a RadCommandBar with several CommandBarStripElement. Each strip should contain a single button element. 2.Add a RadButton. 3.Use the following code snippet: private Dictionary<ElementVisibility, ElementVisibility> toggle; public Form1() { InitializeComponent(); toggle = new Dictionary<ElementVisibility, ElementVisibility>(); toggle[ElementVisibility.Collapsed] = ElementVisibility.Visible; toggle[ElementVisibility.Hidden] = ElementVisibility.Visible; toggle[ElementVisibility.Visible] = ElementVisibility.Collapsed; } private void ButtonClick() { foreach (var row in radCommandBar1.Rows) { foreach (var strip in row.Strips) { Toggle(strip); } } } private void radButton1_Click(object sender, EventArgs e) { ButtonClick(); } private void Toggle(Telerik.WinControls.UI.CommandBarStripElement strip) { Toggle(strip.Grip); Toggle(strip.OverflowButton); } private void Toggle(Telerik.WinControls.RadElement element) { element.Visibility = toggle[element.Visibility]; } If you collapse the Grip and the OverflowButton of a CommandBarStripElement, there is a gap between CommandBarStripElements. Workaround: call the ButtonClick method in the form constructor.
Workaround: use the following approach: private void commandBarDropDownList1_EnabledChanged(object sender, EventArgs e) { if (this.commandBarDropDownList1.Enabled) { this.commandBarDropDownList1.DropDownListElement.TextBox.BackColor = Color.White; } else { this.commandBarDropDownList1.DropDownListElement.TextBox.TextBoxItem.BackColor = Color.FromArgb(210, 210, 210); } }
When you change the ImageList property of RadCommandBar at runtime, the images of the items are not updated. In addition, if there are items in the overflow popup, their image is reset to default. WORKAROUND: You need to reset each item's ImageIndex property in order for the new image to appear and you also need to update the ImageList property of the overflow popups manually. private void radCheckBox1_ToggleStateChanged(object sender, StateChangedEventArgs args) { radCommandBar1.ImageList = radCheckBox1.Checked ? imageList32 : imageList16; ToggleImageIndices(); } private void ToggleImageIndices() { foreach (var row in radCommandBar1.Rows) { foreach (var strip in row.Strips) { ((RadControl)strip.OverflowButton.OverflowPanel.Layout.ElementTree.Control).ImageList = radCommandBar1.ImageList; foreach (var item in strip.Items) { int oldIndex = item.ImageIndex; item.ImageIndex = -1; item.ImageIndex = oldIndex; } foreach (var item in strip.OverflowButton.OverflowPanel.Layout.Children.OfType<RadCommandBarBaseItem>()) { int oldIndex = item.ImageIndex; item.ImageIndex = -1; item.ImageIndex = oldIndex; } } } }
Description: add a RadCommandBar and Dock it to the Left. Add several CommandBarToggleButton and CommandBarButton items and set their StretchHorizontally property to true and StretchVertically property to false. Save changes, close the designer and open it again. The settings are not kept.