To reproduce: add a RadSpellChecker and a RadTextBoxControl and set the RadSpellChecker.AutoSpellCheckControl property to the RadTextBoxControl. When you type "Thisis", the red underline appears, indicating the error. However, if you use the context menu to correct the misspelled word, the red underline remains. Please refer to the attached gif file. Workaround: stop the default context menu and use the spell checking form instead: private void radTextBoxControl1_ContextMenuOpening(object sender,TreeBoxContextMenuOpeningEventArgs e) { e.Cancel = true; this.radSpellChecker1.Check(this.radTextBoxControl1); }
To reproduce: add a RadSpellChecker and a RadTextBoxControl. Set the RadSpellChecker.AutoSpellCheckControl property to the RadTextBoxControl. Please refer to the attached screenshot. Workaround: Dim tbSpellChecker As TextBoxSpellChecker = Me.RadSpellChecker1.GetControlSpellChecker(GetType(RadTextBoxControl)) Dim fi As FieldInfo = GetType(TextBoxSpellChecker).GetField("punctuation", BindingFlags.NonPublic Or BindingFlags.Instance) Dim chars As Char() = " .,;:!?-\\/|~!@#$%^&*()_+=".ToCharArray() fi.SetValue(tbSpellChecker, chars)
To reproduce: Change the monitors positions in the settings panel and try out on both monitors. Please refer to the attached file. Workaround: Dim tbLocation = Point.Empty Sub New() InitializeComponent() Me.RadTextBox1.Text = "Once uppon " Dim tbSpellChecker As TextBoxSpellChecker = Me.RadSpellChecker1.GetControlSpellChecker(GetType(RadTextBox)) AddHandler tbSpellChecker.DropDownMenu.PopupOpening, AddressOf PopupOpening AddHandler Me.RadTextBox1.TextBoxElement.TextBoxItem.HostedControl.MouseDown, AddressOf RadTextBox1_MouseDown End Sub Private Sub PopupOpening(sender As Object, args As System.ComponentModel.CancelEventArgs) Dim e As RadPopupOpeningEventArgs = TryCast(args, RadPopupOpeningEventArgs) If e IsNot Nothing Then e.CustomLocation = tbLocation End If End Sub Private Sub RadTextBox1_MouseDown(sender As Object, e As MouseEventArgs) If e.Button = Windows.Forms.MouseButtons.Right Then tbLocation = Me.RadTextBox1.PointToScreen(e.Location) End If End Sub
To reproduce use the following code: radDateTimePicker1.Format = DateTimePickerFormat.Custom; radDateTimePicker1.CustomFormat = "MM/dd/yyyy hh:mm tt"; (this.radDateTimePicker1.DateTimePickerElement.TextBoxElement.Provider as MaskDateTimeProvider).AutoSelectNextPart = true; now, in the first part, type in "10" and you will be auto moved to the second part. Then, press back, to go back to the first part, and try to type in "01" (entering January). The result is that when you press "0" you are moved to the second part, hence "01" cannot be entered.
To reproduce: Add a RadSpellChecker and a RadTextBox. Load a custom dictionary for RadTextBox: DocumentSpellCheckerspellChecker = checker.GetControlSpellChecker(typeof(RadTextBox)).SpellChecker asDocumentSpellChecker; WordDictionarydict = newWordDictionary(); using(MemoryStreamms = newMemoryStream(File.ReadAllBytes("sv-SE.tdf"))) { dict.Load(ms); } spellChecker.AddDictionary(dict, CultureInfo.CurrentCulture); On a button click spell check the textbox when it has the following text: Varfor fungärar innte dettta this.checker.SpellCheckMode = SpellCheckMode.AllAtOnce; this.checker.Check(this.textBox); You will see that the suggested words are not in Swedish. Workaround: Add the dictionary to the RadRichTextBox spell checker: DocumentSpellCheckerrichSpellChecker = checker.GetControlSpellChecker(typeof(RadRichTextBox)).SpellChecker asDocumentSpellChecker; richSpellChecker.AddDictionary(dict, CultureInfo.CurrentCulture);
To reproduce: 1. Add RadAutoCompleteBox with few items 2. Set the AutoCompleteMode property to SuggestAppend and the WordWrap property to true 3. Start the project and enter 2 times space key. After that press enter key and you will see an exception
To reproduce: add a RadTextBoxControl and use the following code snippet: private void radTextBoxControl1_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == 13) { radTextBoxControl1.Clear(); } } When you enter some text and hit Enter, the text is cleared, but the caret position remains the same. Workaround: private void radTextBoxControl1_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == 13) { radTextBoxControl1.Clear(); radTextBoxControl1.CaretIndex = 0; } }
When the IP is set like this: this.radMaskedEditBox1.Value = "89.111.222.123"; the value in the box is not correct: 891.112.221.23 In addition the user should be able to insert digits not just replace them.
The ToolTipTextNeeded is never fired for this element, and setting the ToolTipText for TokenizedTextBlockElement in TextBlockFormatting does not apply a tooltip for the element. Workaround - set the ShouldHandleMouseInput to true: void radAutoCompleteBox1_TextBlockFormatting(object sender, TextBlockFormattingEventArgs e) { TokenizedTextBlockElement token = e.TextBlock as TokenizedTextBlockElement; if (token != null) { token.ToolTipText = "Testing Tooltip"; token.ShouldHandleMouseInput = true; } }
Workaround: RadPopupContainer1.BindingContext = New BindingContext()
To reproduce: - Add RadtextBox to a form and anchor it to the left and right. - Set WindosState of the form to Maximized - Start the application Workaround void RadForm1_Shown(object sender, EventArgs e) { this.WindowState = FormWindowState.Maximized; }
To reproduce: - Set the value of the TimePicker to a value that is different from the current day. - Select the time part and press the up arrow button.
Please refer to the attached gif file. Workaround: public Form1() { InitializeComponent(); this.radSpellChecker1.AutoSpellCheckControl = this.radTextBoxControl1; this.radTextBoxControl1.Multiline = true; this.radTextBoxControl1.ContextMenuOpening += radTextBoxControl1_ContextMenuOpening; } public static bool containsError = false; public static bool isMisspelledWord = true; private void radTextBoxControl1_ContextMenuOpening(object sender, TreeBoxContextMenuOpeningEventArgs e) { if (!isMisspelledWord && containsError) { //do not show the context when you click over a correct word e.Cancel = true; } } public class MyTextBox : RadTextBoxControl { protected override RadTextBoxControlElement CreateTextBoxElement() { return new MyTextBoxElement(); } public override string ThemeClassName { get { return typeof(RadTextBoxControl).FullName; } } } public class MyTextBoxElement : RadTextBoxControlElement { RadSpellChecker sp = new RadSpellChecker(); protected override void OnMouseDown(MouseEventArgs e) { sp.AutoSpellCheckControl = this.ElementTree.Control; containsError = false; isMisspelledWord = true; if (e.Button == System.Windows.Forms.MouseButtons.Right) { Point location = this.ElementTree.Control.PointToClient(Cursor.Position); TextPosition position = this.Navigator.GetPositionFromPoint(location); this.Navigator.CaretPosition = position; if (this.Multiline) { this.Navigator.ScrollToCaret(); } ITextBoxNavigator navigator = this.Navigator; TextPosition caretPosition = navigator.CaretPosition; LineInfo line = caretPosition.Line; ITextBlock textBlock = caretPosition.TextBlock; string clickedWordInRadTextBox = textBlock.Text; if (string.IsNullOrEmpty(clickedWordInRadTextBox) || clickedWordInRadTextBox == " ") { return; } TextBoxSpellChecker tbSpellChecker = sp.GetControlSpellChecker(typeof(RadTextBoxControl)) as TextBoxSpellChecker; ICollection<string> suggestions = tbSpellChecker.SpellChecker.GetSuggestions(clickedWordInRadTextBox); if (suggestions.Count > 0) { containsError = true; } if (tbSpellChecker.SpellChecker.CheckWordIsCorrect(clickedWordInRadTextBox)) { isMisspelledWord = false; } base.OnMouseDown(e); } } protected override Type ThemeEffectiveType { get { return typeof(RadTextBoxControlElement); } } }
To reproduce: use Korean (Microsoft IME) keayboard this.radTextBoxControl1.ImeMode = System.Windows.Forms.ImeMode.Hangul; Workaround: this.radTextBoxControl1.KeyUp+=radTextBoxControl1_KeyUp; private void radTextBoxControl1_KeyUp(object sender, KeyEventArgs e) { this.radTextBoxControl1.SelectionStart = this.radTextBoxControl1.Text.Length; }
Note: the issue can be also observed in the textbox editor in RadGridView.
The initial loading performance can be improved.
To reproduce: - Set the mask like this: radMaskedEditBox1.MaskType = Telerik.WinControls.UI.MaskType.Standard; radMaskedEditBox1.Mask = "000-000-0000"; - Select the entire content and paste the following: 66677711111
To reproduce: radMaskedEditBox1.MaskType = Telerik.WinControls.UI.MaskType.Standard; radMaskedEditBox1.Mask = "000-000-0000"; - Paste: 999 999 9999 when there is no selected text.
Workaround: this.radDateTimePicker1.DateTimePickerElement.ShowTimePicker = true; RadDateTimePickerCalendar calendarBehavior = this.radDateTimePicker1.DateTimePickerElement.GetCurrentBehavior() as RadDateTimePickerCalendar; calendarBehavior.PopupControl.Opened += PopupControl_Opened; calendarBehavior.PopupControl.Opening+=PopupControl_Opening; calendarBehavior.PopupControl.Closing+=PopupControl_Closing; calendarBehavior.PopupControl.Closed+=PopupControl_Closed;
To reproduce: use the following code: public Form1() { InitializeComponent(); Label l1 = new Label(); l1.Text = "Label&1"; l1.Location = new Point(10, 20); this.Controls.Add(l1); RadTextBox tb = new RadTextBox(); tb.Location = new Point(150, 20); this.Controls.Add(tb); Label l2 = new Label(); l2.Text = "Label&2"; l2.Location = new Point(10, 50); this.Controls.Add(l2); RadTextBoxControl tbc = new RadTextBoxControl(); tbc.Location = new Point(150, 50); this.Controls.Add(tbc); Label l3 = new Label(); l3.Text = "Label&3"; l3.Location = new Point(10, 80); this.Controls.Add(l3); RadMaskedEditBox meb = new RadMaskedEditBox(); meb.Location = new Point(150,80); this.Controls.Add(meb); } If you press Alt +2, the RadTextBoxControl will get focus. However, if you press Alt + 3, the RadMaskedEditBox will not display the caret. The control actually gets focus, but the inner text box does not. Workaround: private void radMaskedEditBox1_GotFocus(object sender, EventArgs e) { this.radMaskedEditBox1.MaskedEditBoxElement.TextBoxItem.TextBoxControl.Focus(); }
Workaround: radSpinEditor1.SpinElement.TextBoxItem.HostedControl.MouseWheel += HostedControl_MouseWheel;