Workaround: RadPopupContainer1.BindingContext = New BindingContext()
To reproduce: 1. Add UserControl 2. Drag and drop RadPopupEditor and RadPopupContainer 3. Open the smart tag of RadPopupEditor and try to set the AssociatedControl property. You will see error message from attached image. Workaround: Set the AssociatedControl at run time. Here is the code snippet: For C#: public UserControl1() { InitializeComponent(); this.radPopupEditor1.AssociatedControl = this.radPopupContainer1; } For VB: Public Class UserControl1 Inherits UserControl Public Sub New() InitializeComponent() Me.RadPopupEditor1.AssociatedControl = Me.RadPopupContainer1 End Sub End Class
Workaround: public Form1() { InitializeComponent(); this.radMaskedEditBox1.MaskedEditBoxElement.TextBoxItem.KeyPress += TextBoxItem_KeyPress; } private void TextBoxItem_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == '-') { this.radMaskedEditBox1.MaskedEditBoxElement.TextBoxItem.SelectionStart = this.radMaskedEditBox1.MaskedEditBoxElement.TextBoxItem.Text.Length; } }
To reproduce: - Try to set the alignment: radPopupEditor1.PopupEditorElement.PopupContainerForm.HorizontalPopupAlignment = HorizontalPopupAlignment.RightToRight; radPopupEditor1.Popup.HorizontalPopupAlignment = HorizontalPopupAlignment.RightToRight; - The property is reset when the popup is opened. Workaround: void radPopupEditor1_PopupOpening(object sender, CancelEventArgs e) { RadPopupOpeningEventArgs args = e as RadPopupOpeningEventArgs; int width = radPopupContainer1.Width; args.CustomLocation = new Point(args.CustomLocation.X - width + radPopupEditor1.Width, args.CustomLocation.Y); }
To reproduce: - Set the AutoSelectNextPart property to true. - Selelct the entire text and try to enter the date. Workaround: radTimePicker1.TimePickerElement.KeyDown += TimePickerElement_KeyDown; void TimePickerElement_KeyDown(object sender, KeyEventArgs e) { if (this.radTimePicker1.TimePickerElement.MaskedEditBox.TextBoxItem.Text.Trim('A', 'P', 'M', ' ') == this.radTimePicker1.TimePickerElement.MaskedEditBox.TextBoxItem.SelectedText.Trim('A', 'P', 'M', ' ')) { ((MaskDateTimeProvider)radTimePicker1.TimePickerElement.MaskedEditBox.Provider).SelectFirstEditableItem(); e.Handled = true; } }
To reproduce: Me.RadMaskedEditBox1.Mask = "c" Me.RadMaskedEditBox1.MaskType = MaskType.Numeric Me.RadMaskedEditBox1.Value = Nothing Try to enter "123". You will notice that after entering "1", the cursor is positioned after "$" instead of "1". Thus, the entered value will be "$231.00", instead the expected "$123.00" Workaround: initialize the RadMaskedEditBox with Value= 0.
Please refer to the attached sample project. Workaround: keep the text box invisible until the form is shown.
To reproduce: - Set the mask like this: radMaskedEditBox1.Mask = "N0"; radMaskedEditBox1.MaskType = MaskType.Numeric; Set the value to "12345" move the caret to the first position and press '.' Workaround: void radMaskedEditBox1_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == '.') { e.Handled = true; } }
To reproduce: Create a Windows Forms project - Add a RadDock. - Add 1 DocumentWindow and 1 ToolWindow to the RadDock control. - Add a RadTextBoxControl to the DocumentWindow. Give it a height that will allow you to easily scroll. - Run the application and enter enough text into the text box to make the scrollbar appear. - Scroll to the bottom of the textbox. - Minimize the application. Workaround: public class MyScroller : TextBoxScroller { public MyScroller(RadScrollBarElement scrollbar) : base(scrollbar) { } public override int Value { get { return base.Value; } set { if (value < this.MaxValue) { base.Value = value; } } } } Change it as follows: radTextBoxControl1.TextBoxElement.ViewElement.VScroller = new MyScroller(radTextBoxControl1.TextBoxElement.VScrollBar);
To reproduce: RadSpellChecker radSpellChecker1 = new RadSpellChecker(); public Form1() { InitializeComponent(); RadTextBox radTextBox1 = new RadTextBox(); radTextBox1.Location = new Point(10, 10); this.Controls.Add(radTextBox1); this.radSpellChecker1.AutoSpellCheckControl = radTextBox1; } 1. Enter some valid text. 2. Select the content and right click with the mouse in order to copy the text by using the default context menu. However, the menu does not show. Note: if the control is not spellchecked, it shows default context menu associated with MS TextBox. Workaround: display your own menu with copy/paste options when no misspelled words are available. RadContextMenu menu = new RadContextMenu(); public TestSpellchecker() { InitializeComponent(); RadMenuItem copyItem = new RadMenuItem("Copy"); copyItem.Click += copyItem_Click; menu.Items.Add(copyItem); RadMenuItem pasteItem = new RadMenuItem("Paste"); pasteItem.Click += pasteItem_Click; menu.Items.Add(pasteItem); this.radTextBox1.TextBoxElement.TextBoxItem.TextBoxControl.MouseDown += TextBoxControl_MouseDown; } private void pasteItem_Click(object sender, EventArgs e) { this.radTextBox1.Paste(); } private void copyItem_Click(object sender, EventArgs e) { this.radTextBox1.Copy(); } static Regex wordParser = new Regex(@"[\p{L}\p{N}\p{M}]+(?:[-.'´_@][\p{L}|\p{N}|\p{M}]+)*", RegexOptions.Compiled); private void TextBoxControl_MouseDown(object sender, MouseEventArgs e) { if (e.Button == System.Windows.Forms.MouseButtons.Right) { TextBoxSpellChecker tbSpellChecker = this.radSpellChecker1.GetControlSpellChecker(typeof(RadTextBoxControl)) as TextBoxSpellChecker; MatchCollection words = wordParser.Matches(this.radTextBox1.Text); bool containsError = false; foreach (Match word in words) { string text = word.Captures[0].Value; if (!tbSpellChecker.SpellChecker.CheckWordIsCorrect(text, System.Threading.Thread.CurrentThread.CurrentCulture)) { containsError = true; break; } } if (!containsError) { menu.Show(this.radTextBox1, new Point(0,0)); } } }
Workaround: install .NET Framework 2.0 SP1
Note: when you open the spell check dialog and it iterates through the words, it does not highlight (select) the word in the linked RadTextBoxControl/RadTextBox, like it does in the Word's spell checker.
Note: When using WordByWord, the first suggested change is automatically shown in the "Change To" text box, however when using AllAtOnce, it is not, but the "Change" button is enabled. Pressing the Change button then adds the suggestion to the "Change To" text box, but doesn't update the word above, so you have to press the Change button a second time. Workaround: public Form1() { InitializeComponent(); this.radSpellChecker1.SpellCheckMode = Telerik.WinControls.UI.SpellCheckMode.AllAtOnce; this.radSpellChecker1.SpellingFormShowing += radSpellChecker1_SpellingFormShowing; } private void radSpellChecker1_SpellingFormShowing(object sender, Telerik.WinControls.UI.SpellingFormShowingEventArgs e) { RadButton changeButton = e.SpellingForm.Controls["buttonChange"] as RadButton; changeButton.PerformClick(); }
To reproduce: this.radSpellChecker1.AutoSpellCheckControl = this.radTextBoxControl1; this.radTextBoxControl1.Text = "this is a test [doc]"; private void radButton1_Click(object sender, EventArgs e) { radSpellChecker1.Check(radTextBoxControl1); } The "[doc]" is underlined as misspelled. However, if you click the button, no mistakes will be found. Workaround: char[] punctuation = " .,!?-\\/|~!@#$%^&*()[]_+=;:".ToCharArray(); TextBoxSpellChecker tbSpellChecker = this.radSpellChecker1.GetControlSpellChecker(typeof(RadTextBoxControl)) as TextBoxSpellChecker; FieldInfo fi = typeof(TextBoxSpellChecker).GetField("punctuation", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); fi.SetValue(tbSpellChecker, punctuation);
Workaround: radSpinEditor1.SpinElement.TextBoxItem.HostedControl.MouseWheel += HostedControl_MouseWheel;
To reproduce: 1. Please refer to the attached sample project. 2. Run the project and click the button. The two RadTextBox controls are left aligned. 3. Close the opened form and click the button again. You will notice that the RadTextBox is not left aligned. Workaround: use RadTextBoxControl.
To reproduce: - Set the value to February 29. - Open the drop down and zoom 3 times. Workaround: private void Calendar_ZoomChanging(object sender, CalendarZoomChangingEventArgs e) { RadCalendar calendar = sender as RadCalendar; if (calendar.FocusedDate.Month == 2 && calendar.FocusedDate.Day == 29) { calendar.FocusedDate = new DateTime(calendar.FocusedDate.Year, calendar.FocusedDate.Month, calendar.FocusedDate.Day - 1); } }
To reproduce: this.radDateTimePicker1.Format = DateTimePickerFormat.Custom; this.radDateTimePicker1.CustomFormat = "MM/yyyy"; this.radDateTimePicker1.Value = new DateTime(2016, 01, 31); Select the month part and try to change it to 02. Workaround: initialize with the first day of the month.