When the Font of the form changes (or the DPI setting), RadForm should be able to arrange its content so that no controls are overlapped. In addition, RadForm should increase its size when necessary.
MDI control box does not appear when MDI child forms are hidden istead of closed. This happens the second time you are trying to open a previously hidden form right after hiding another MDI child form. Workaround: First, you should add the RadMDIControlsItemExtended class to your real solution and then add the following code snippet in the constructor of the parent MDI form: this.rbMain.RibbonBarElement.ButtonsContainer.Children.RemoveAt(2); RadMDIControlsItemExtended MDIBox = new RadMDIControlsItemExtended(); this.rbMain.RibbonBarElement.ButtonsContainer.Children.Add(MDIBox); MDIBox.LayoutPropertyChanged(); RadMDIControlsItemExtended.cs: using System; using System.Collections.Generic; using System.Text; using Telerik.WinControls.UI; using System.Windows.Forms; using Telerik.WinControls; using System.Reflection; namespace StandardMdiApplication { class RadMDIControlsItemExtended : RadMDIControlsItem { protected override void OnHostFormLayout() { base.OnHostFormLayout(); FieldInfo fi = typeof(RadMDIControlsItem).GetField("hostForm", BindingFlags.NonPublic | BindingFlags.Instance); object o = fi.GetValue(this); Form hostForm = (Form)o; if (hostForm != null && hostForm.IsMdiContainer) { Form maximizedForm = null; foreach (Form form in hostForm.MdiChildren) { if (form is ShapedForm) { foreach (Control mdiFormControls in form.Controls) { if (mdiFormControls is RadTitleBar) { mdiFormControls.Visible = form.WindowState != FormWindowState.Maximized; } } } if (form.WindowState == FormWindowState.Maximized && form.Visible && (maximizedForm == null || hostForm.ActiveMdiChild == form)) { maximizedForm = form; break; } } if (maximizedForm == null) { this.Visibility = ElementVisibility.Collapsed; this.InvalidateMeasure(); return; } FormBorderStyle borderStyle = (maximizedForm is RadFormControlBase) ? ((RadFormControlBase)maximizedForm).FormBorderStyle : maximizedForm.FormBorderStyle; if (maximizedForm != null && maximizedForm.Visible && maximizedForm.ControlBox && borderStyle != FormBorderStyle.None && borderStyle != FormBorderStyle.SizableToolWindow && borderStyle != FormBorderStyle.FixedToolWindow) { this.Visibility = ElementVisibility.Visible; this.InvalidateMeasure(); } else { this.Visibility = ElementVisibility.Collapsed; this.InvalidateMeasure(); } } } } }
Setting the ShowIcon to false hides the icon. You then decide to show the icon again, and you set ShowIcon back to true. However, the icon does not appear again.
When RadMessageBox has not owner and it is using in form that has TopMost = true throws exception after first call of RadMessageBox.Show() Steps to reproduce: 1.Create From with TopMost = true 2. Add button and insert the following code in press event: RadMessageBox.Show("Text"); 3.Run application and press the button two times. Workaround after each show of RadMessageBox add this code snippet: RadMessageBox.Instance.Dispose();
To reproduce: RadMessageBox.Instance.Font = new Font("Segoe UI", 10); foreach (Control c in RadMessageBox.Instance.Controls) { c.Font = new Font("Segoe UI", 14); } RadMessageBox.SetThemeName("TelerikMetro"); RadMessageBox.Show("test", "test2", MessageBoxButtons.YesNoCancel, RadMessageIcon.Error, MessageBoxDefaultButton.Button2); WORKAROUND: use smaller font size
RadMessageBox throws ArgumentException - "A circular control reference has been made. A control cannot be owned by or parented to itself." when using with MDI forms. WorkAround: RadMessageBox.Show("Text"); RadMessageBox.Instance.Dispose();
To workaround this issue you should dispose the Instance property of RadMessageBox after each show of message box. For example: WORKAROUND: RadMessageBox.Show("Text"); RadMessageBox.Instance.Dispose(); If you are using themes, consider the following approach: RadMessageBox.SetThemeName("Windows7"); RadMessageBox.Show("This is some long text that sometimes does not wrap as it should."); var field = typeof(RadMessageBox).GetField("radMessageBoxForm", BindingFlags.NonPublic | BindingFlags.Static); field.SetValue(null, null);
Steps to reproduce: 1. Add a RadPropertyGrid to a form and subscribe for the PropertyValidating event 2. In the event handler show a RadMessageBox Run the project and change a property. Try to save the value and you will see an exception.
We should allow users to turn off the sound played when a RadMessageBox is shown.
To reproduce: - Set RadForm.FormBorderStyle to FixedDialog - Set some Icon to the form - Run and the icon is not visible With the standard form, the icon is visible. Workaround: use FormBorderStyle = FixedSingle
After each call to the Show method of RadMessageBox, the message box form is disposed. This causes each new call to Instance (or Show which internally calls Instance) to create a new instance of a message box form, loosing any user settings.
1. Create a new project and add a button. 2. On button click show a new RadForm by calling its ShowDialog method from another thread. You should use Invoke.
Steps to reproduce: Create & show a RadRibbonForm under Windows 8 and exception will occurred.
1. Create a new project with RadForm and RadGridView. 2. Handle the ScreenTipNeeded event to show screen tips in RadGridView cells. 3. Run the project and note that the first time when showing a screen tip, RadForm changes its size.
When you are navigating repeatedly between the buttons in RadMessageBox using the arrow keys, at one of the steps none of the buttons is focused.
Steps to reproduce: - add RadForm to the project - drop a RadRibbonBar to the project - when asked to use RadRibbonFormBehavior, confirm with Yes - check the form size (height) and close it - reopen it and the size is changed - repeating the last two steps continues to increase the form height Workaround: change the parent of the form having the ribbon form behavior public partial class RadForm1 : CustomRadForm { public RadForm1() { InitializeComponent(); } } public class CustomRadForm : Telerik.WinControls.UI.RadForm { public new FormControlBehavior FormBehavior { get { return (FormControlBehavior)typeof(RadFormControlBase) .GetField("formBehavior", BindingFlags.Instance | BindingFlags.NonPublic) .GetValue(this); } set { this.ResetFormBehavior(false); if (value != null) { Size clientSize = this.ClientSize; typeof(RadFormControlBase) .GetField("formBehavior", BindingFlags.Instance | BindingFlags.NonPublic) .SetValue(this, value); typeof(RadFormControlBase) .GetMethod("PrepareBehavior", BindingFlags.Instance | BindingFlags.NonPublic) .Invoke(this, new object[] { }); this.RecreateHandle(); this.ClientSize = clientSize; } } } }
FIX. Pressing Escape does not trigger the Click event of the form's CancelButton.
Add a details section to RadMessageBox, so that in mimics standard error messages.
FIX. RadRibbonForm - ApplicationButtonElement and QuickAccessToolBar are cut off when Aero if off and the form is maximized
FIX. RadRibbonForm - setting the FormBorderStyle property does not take effect