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; } }
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: 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)
One should be able to disable the saving of the custom colors. In addition one should be able to override the color dialog FormClosing method.
1. Add RadTextBoxControl and RadSpellChecker 2. Set the AutoSpellCheckControl property to radTextBoxControl1 3. Type text "(a) is (b) is (c) (d)" and you will see that the letters in parentheses are underline like incorrect.
To reproduce: AddHandler RadAutoCompleteBox1.Validating, Sub() 'add new item to list Dim txt As String = RadAutoCompleteBox1.Text Dim add As String = String.Empty If Not String.IsNullOrEmpty(txt) Then If Not txt.EndsWith(";") Then 'new item! If txt.Contains(";") Then _addWg = txt.Split(";").Last Else _addWg = txt End If RadAutoCompleteBox1.Text = RadAutoCompleteBox1.Text & ";" End If End If End Sub '--------------- 'We update the datasource when we lost focus.... AddHandler RadAutoCompleteBox1.LostFocus, Sub() If Not String.IsNullOrEmpty(_addWg) AndAlso Not wgAcSource.Contains(_addWg) Then wgAcSource.Add(_addWg) RadAutoCompleteBox1.AutoCompleteDataSource = Nothing RadAutoCompleteBox1.AutoCompleteDataSource = wgAcSource _addWg = String.Empty End If End Sub Workaround: Add the item and reset the data source in the KeyDown event for example when the user presses Enter.
To reproduce: 1. Add ribbon with a tab, group and a RadTextBoxElement. 2. Open Edit UI Elements from the smart tag, select the TextBoxItem and set the MultiLine to true 3. Run the app and the text box is not multiline Workaround: set it in code: radTextBoxElement1.TextBoxItem.Multiline = true;
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(); }
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; }