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: 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: 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;
Workaround: this.radTextBoxControl1.TextBoxElement.AutoCompleteDropDown.PopupOpening += AutoCompleteDropDown_PopupOpening; private void AutoCompleteDropDown_PopupOpening(object sender, CancelEventArgs args) { RadPopupOpeningEventArgs a = args as RadPopupOpeningEventArgs; if (a != null ) { a.CustomLocation = new Point(a.CustomLocation.X,a.CustomLocation.Y + 20); } }
To reproduce: 1. Add a RadTextBox 2. Set the AutoCompleteMode property to SuggestAppend 3. Add a RadSpellChecker and set the AutoSpellCheckControl property the text box 4. Start typing. You will notice that the autocomplete functionality behaves as expected. But the incorrect words are not underlined. Workaround: use RadTextBoxControl
To reproduce: public Form1() { InitializeComponent(); AddDateTime(); radDateTimePicker1.ValueChanged += radDateTimePicker1_ValueChanged; radDateTimePicker1.Format = DateTimePickerFormat.Custom; radDateTimePicker1.CustomFormat = "dd/MM/yyyy HH:mm"; AddButton(); } void radDateTimePicker1_ValueChanged(object sender, EventArgs e) { if (radDateTimePicker1.Value.Date.Hour == 0) { var date = radDateTimePicker1.Value.Date; radDateTimePicker1.Value = new DateTime(date.Year, date.Month, date.Day, 23, 59, 0); } } Workaround: Refocus the control and the value will be updated.
To reproduce: radMaskedEditBox1.MaskType = Telerik.WinControls.UI.MaskType.Standard; radMaskedEditBox1.Mask = "000-000-0000"; - Paste: 999 999 9999 when there is no selected text.
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
The performance can be improved by creating the RadContextMenu only when it is needed not when the element is created.
The initial loading performance can be improved.
To reproduce: this.radTextBoxControl1.Text = "dog and blue glue"; this.radTextBoxControl1.Size = new Size(50, 65); this.radTextBoxControl1.Multiline = true; Workaround: use RadTextBox.
To reproduce: public RadForm1() { InitializeComponent(); this.radTextBoxControl1.Text = "Sample text with misspelledd word"; RadSpellChecker spellChecker1 = new RadSpellChecker(); spellChecker1.AutoSpellCheckControl = radTextBoxControl1; } private void radTextBoxControl1_ContextMenuOpening(object sender, TreeBoxContextMenuOpeningEventArgs e) { RadMenuItem customItem= new RadMenuItem("Custom item"); e.ContextMenu.Items.Add(customItem); } Workaround: use RadTextBox instead: RadSpellChecker spellChecker1 = new RadSpellChecker(); this.radTextBox1.Text = "Sample text with misspelledd word"; spellChecker1.AutoSpellCheckControl = this.radTextBox1; TextBoxSpellChecker tbSpellChecker = spellChecker1.GetControlSpellChecker(typeof(RadTextBox)) as TextBoxSpellChecker; tbSpellChecker.DropDownMenu.DropDownOpening += DropDownMenu_DropDownOpening; private void DropDownMenu_DropDownOpening(object sender, CancelEventArgs e) { RadDropDownMenu menu = sender as RadDropDownMenu; RadMenuItem customItem = new RadMenuItem("Custom item"); menu.Items.Add(customItem); }
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.
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: - 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.
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: 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.
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.
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.