To reproduce: - Add two buttons and a textbox to a RadForm. - Set the AcceptButton to be the first button. - Focus the second button and press Enter Workaround: protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData) { if (keyData == System.Windows.Forms.Keys.Enter) { if (this.ActiveControl is Button && this.ActiveControl != this.AcceptButton) { ((Button)this.ActiveControl).PerformClick(); return true; } } return base.ProcessCmdKey(ref msg, keyData); }
To reproduce: - Add a menu item with a specific mnemonic key to a form. - Add child form with a button that has the same mnemonic key. - Start the application hold Alt and press the mnemonic key. - The menu item is executed instaed of the
My company is in the process of moving to windows 10 and we have a handful of custom systems that have to be migrated. I was told to "Just make them work". One of those is a tool that was written in 2008 using all Telerik controls. This system was last updated in 2012 to run on windows 7. We have plans to move the functionality to a Universal App however, we have bigger fish to fry. here is a list of all the bugs we encountered so far: Forms with tons of controls(170 in my case) take forever to Initialize(> 60 seconds) especially the RadDateTimePicker; The UI freezes until the InitializeComponent method completes. The forms occasionally throws timeout errors waiting on a Com Handoff for more then 60 seconds. There is no databinding going on and there is no functionality tied to the initialization or loading of the forms in an MDI. Only Large forms have this problem. Any form that executes the following code does not load: this.RootElement.ApplyShapeToControl = true;
To reproduce: public Form1() { InitializeComponent(); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; } Although the user is not allowed to resize the form from the form's borders, it is possible to do it by the context menu. Workaround: [DllImport("user32.dll")] static extern bool EnableMenuItem(IntPtr hMenu, uint uIDEnableItem, uint uEnable); internal const UInt32 MF_DISABLED = 0x00000002; internal const UInt32 SC_SIZE = 0xF000; internal const UInt32 WM_INITMENUPOPUP = 0x0117; protected override void WndProc(ref Message m) { if (m.Msg == WM_INITMENUPOPUP && (((int)m.LParam & 0x10000) != 0)) { EnableMenuItem(m.WParam, SC_SIZE, MF_DISABLED); } base.WndProc(ref m); }
Please refer to the attached project. Workaround: maximize the form in the Load event.
To reproduce: private void radButton1_Click(object sender, EventArgs e) { StringBuilder detailsText = new StringBuilder(); for (int i = 0; i < 10; i++) { detailsText.AppendLine("Line" + i); } detailsText.AppendLine("END"); RadMessageBox.Show("Message", "Caption Text", MessageBoxButtons.AbortRetryIgnore, detailsText.ToString()); } Workaround: enlarge the details section in order to fit the text: FieldInfo fi = typeof(RadMessageBoxForm).GetField("detailsSectionHeight", BindingFlags.NonPublic| BindingFlags.Instance); fi.SetValue(RadMessageBox.Instance,200);
Please refer to the attached sample project. Workaround: call the Close method in the Shown event.
How to reproduce: public partial class Form1 : Form { Timer timer; public Form1() { InitializeComponent(); timer = new Timer(); timer.Interval = 1000; timer.Tick += new EventHandler(MyTimer_Tick); timer.Start(); } protected override void OnShown(EventArgs e) { base.OnShown(e); RadMessageBox.Show("Shown"); } private void MyTimer_Tick(object sender, EventArgs e) { RadMessageBox.Show("Form closed"); this.Close(); } } Workaround: dispose the old instance private void MyTimer_Tick(object sender, EventArgs e) { RadMessageBox.Instance.Dispose(); RadMessageBox.Show("Form closed"); this.Close(); }
To reproduce: disable Aero on a Windows7 machine and use the following code: public Form1() { InitializeComponent(); this.IsMdiContainer = true; Form MSform = new Form(); MSform.Text = "Form MDI Child 1"; MSform.MdiParent = this; MSform.Show(); MSform = new Form(); MSform.Text = "Form MDI Child 2"; MSform.MdiParent = this; MSform.Show(); MSform = new Form(); MSform.Text = "Form MDI Child 3"; MSform.MdiParent = this; MSform.Show(); RadForm form = new RadForm(); form.Text = "RadForm MDI Child 1"; form.MdiParent = this; form.Show(); form = new RadForm(); form.Text = " RadFormMDI Child 2"; form.MdiParent = this; form.Show(); form = new RadForm(); form.Text = " RadFormMDI Child 3"; form.MdiParent = this; form.Show(); } private void Form1_Shown(object sender, EventArgs e) { this.LayoutMdi(MdiLayout.TileHorizontal); } private void radButton1_Click(object sender, EventArgs e) { this.LayoutMdi(MdiLayout.TileVertical); } private void radButton2_Click(object sender, EventArgs e) { this.LayoutMdi(MdiLayout.Cascade); } private void radButton3_Click(object sender, EventArgs e) { this.LayoutMdi(MdiLayout.TileHorizontal); } Workaround: set the RadForm.AllowTheming property to false. Workaround 2: public class MyForm : RadForm { protected override CreateParams CreateParams { get { CreateParams par = base.CreateParams; par.Style |= NativeMethods.WS_CAPTION; return par; } } }
How to reproduce: public partial class Form1 : Form { public Form1() { InitializeComponent(); this.IsMdiContainer = true; } private void radButton1_Click(object sender, EventArgs e) { RadForm2 form = new RadForm2(); form.Text = "MDI Child 1"; form.MdiParent = this; form.ThemeName = "Desert"; form.Show(); } } public partial class RadForm2 : Telerik.WinControls.UI.RadForm { public RadForm2() { InitializeComponent(); this.AllowTheming = false; } } Workaround: override the ProcessCaptureChangeRequested method in the MDI child form public partial class RadForm2 : Telerik.WinControls.UI.RadForm { public RadForm2() { InitializeComponent(); this.AllowTheming = false; } protected override bool ProcessCaptureChangeRequested(RadElement element, bool capture) { if (this.FormElement == null) { return this.Capture = capture; } return base.ProcessCaptureChangeRequested(element, capture); } }
To reproduce: Please refer to the attached screenshots and sample project: 1. Disable Aero 2. Change to Windows Classic 3. Run the provided project Workaround: change to Windows 7 aero Theme with disabled transparency.
Workaround: change all RadForms to inherit the following custom base form public class RadFormBase : RadForm { protected override void OnLoad(EventArgs e) { if (this.IsDesignMode) { this.BackColor = Color.Empty; } base.OnLoad(e); } public override Color BackColor { get { return this.ElementTree.RootElement.BackColor; } set { if (value == Color.Empty) { this.ElementTree.RootElement.ResetValue(VisualElement.BackColorProperty, ValueResetFlags.Local); } else { this.ElementTree.RootElement.BackColor = value; } } } }
How to reproduce: public partial class RadForm1 : RadForm { public RadForm1() { InitializeComponent(); this.AllowTheming = false; this.FormBorderStyle = FormBorderStyle.FixedSingle; } } Workaround: public partial class RadForm1 : RadForm { public RadForm1() { InitializeComponent(); this.AllowTheming = false; this.FormBorderStyle = FormBorderStyle.FixedSingle; } protected override FormControlBehavior InitializeFormBehavior() { return new MyRadFormBehavior(this, true); } } public class MyRadFormBehavior : RadFormBehavior { public MyRadFormBehavior(IComponentTreeHandler treeHandler, bool shouldCreateChildren) : base(treeHandler, shouldCreateChildren) { } public override bool HandleWndProc(ref System.Windows.Forms.Message m) { BindingFlags bindingFlags = BindingFlags.Instance | BindingFlags.NonPublic; if (m.Msg == NativeMethods.WM_NCHITTEST) { typeof(RadFormBehavior).GetMethod("OnWMNCHittest", bindingFlags).Invoke(this, new object[] { m }); return true; } if (!this.AllowTheming) { return false; } return base.HandleWndProc(ref m); } }
How to reproduce: Add a StatusStrip to the form and set the FormBorderStyle to FixedSingle, you will notice that the form can be resized using the sizing grip of the status strip Workaround: public partial class Form2 : RadForm { public Form2() { InitializeComponent(); this.FormBorderStyle = FormBorderStyle.FixedSingle; } protected override FormControlBehavior InitializeFormBehavior() { return new CustomRadFormBehavior(this, true); } } public class CustomRadFormBehavior : RadFormBehavior { public CustomRadFormBehavior(IComponentTreeHandler treeHandler, bool shouldCreateChildren) : base(treeHandler, shouldCreateChildren) { } public override bool HandleWndProc(ref Message m) { if ((m.Msg) == NativeMethods.WM_NCLBUTTONDOWN) { Point screenLocation = new Point(m.LParam.ToInt32()); Point location = this.GetMappedWindowPoint(screenLocation); RadElement itemUnderMouse = this.Form.ElementTree.GetElementAtPoint(location); MouseEventArgs args = new MouseEventArgs(Control.MouseButtons, 1, location.X, location.Y, 0); bool isFixed = false; if (this.Form != null && this.Form.FormBorderStyle == FormBorderStyle.Fixed3D || this.Form.FormBorderStyle == FormBorderStyle.FixedDialog || this.Form.FormBorderStyle == FormBorderStyle.FixedSingle || this.Form.FormBorderStyle == FormBorderStyle.FixedToolWindow) { isFixed = true; } if (isFixed && itemUnderMouse != null && itemUnderMouse.Enabled && !object.ReferenceEquals(itemUnderMouse, (this.Form.RootElement.Children[0] as RadFormElement).TitleBar)) { return true; } } return base.HandleWndProc(ref m); } }
To reproduce: Create a RadForm, select a material theme from the ToolBox, and apply the theme to the Form. Set the size of the Form to anything simple like (300, 300) and then save and close out the Form. When you reopen the same Form it will grow to (304, 302). Please refer to the attached gif file. Workaround: set the size at run time.
To reproduce: follow the steps from the attached gif file. Workaround: public RadForm1() { InitializeComponent(); ((RadRibbonFormBehavior)this.FormBehavior).AllowTheming = false; }
To reproduce: - Hide the border and change the BackColor of the form. - Dock a MenuStrip to the top. - You will notice that there are 2 pixels on the left and right sides of the menu. Project is attached as well.
To reproduce: - Set the icon of the form. - Set the FormBorderStyle to FixedToolWindow. - The default icon is displayed in the taskbar. Workaround: public RadForm2() { InitializeComponent(); this.ShowIcon = true; } protected override void OnShown(EventArgs e) { base.OnShown(e); this.FormElement.TitleBar.IconPrimitive.Visibility = ElementVisibility.Collapsed; }
To reproduce: Add a RadForm and at design time in the Properties section of Visual Studio try to customize some properties of the RadForm >> FormElement >> TitleBar, e.g. Padding, ForeColor. You will notice that even though you save the changes, they are not serialized. Thus, when you run the application, none of the changes are applied. Workaround: set the changes programmatically at run time.
Hi
Please note that I have installed trial version of telerik ui winforms desktop. The problem now is when I open the child page it always takes minimum 4 seconds to load.The child page just contains the radgridview and loads just 6000records.
We are not satisfying with this performance.
Based on the support we will decide to purchase this tool.
We need your assistance asap.
1.download and install the telerik trial version for ui winforms for desktop latest version 2019. 219.
2.open new project with blank template.
3.create radform and set Radform1 as mdi form. And open a child page from this..
CHild page takes 4 seconds to load. Though child page has only grid view and loads only 6000 records
Thanks
Sathish.