Please refer to the attached gif file demonstrating how to reproduce the problem. Workaround: close the popup when pressing Backspace: this.radTextBox1.TextBoxElement.TextBoxItem.TextBoxControl.KeyDown+=TextBoxControl_KeyDown; private void TextBoxControl_KeyDown(object sender, KeyEventArgs e) { if (e.KeyData== Keys.Back) { TextBoxSpellChecker textBoxSpellChecker = _radSpellChecker.GetControlSpellChecker(typeof(RadTextBox)) as TextBoxSpellChecker; if (textBoxSpellChecker!=null) { textBoxSpellChecker.DropDownMenu.ClosePopup(RadPopupCloseReason.Keyboard); } } }
To reproduce: - Use the SpellCheck as you type functionality with RadTextBox. - The "Ignore All" and "Add To Dictionary" strings in the context menu are not changed. Workaround: public RadForm1() { InitializeComponent(); radSpellChecker1.AutoSpellCheckControl = radTextBox1; TextBoxSpellChecker textBoxControlSpellChecker = this.radSpellChecker1.GetControlSpellChecker(typeof(RadTextBox)) as TextBoxSpellChecker; textBoxControlSpellChecker.DropDownMenu.DropDownOpened += DropDownMenu_DropDownOpened; } private void DropDownMenu_DropDownOpened(object sender, EventArgs e) { var menu = (RadDropDownMenu)sender; foreach (var item in menu.Items) { if (item.Text == "Add To Dictionary") { item.Text = "test"; } if (item.Text == "Ignore All") { item.Text = "test"; } } }
After binding a boolean property to RadDateTimePicker:Checked, changes made in the property reflect in the GUI, but changes made in the GUI even after lost focus are not reflected on the boolean property. The same test was done with winforms DateTimePicker and the expected behaviour was observed(not the situation reported). above). For further testing background, the class wich contains the binded boolean, implements INotifyPropertyChanged.
To reproduce: public Form1() { InitializeComponent(); this.radTextBox1.Multiline = true; this.radTextBox1.Size = new Size(200, 200); this.radTextBox1.TextChanged += radTextBox1_TextChanged; } private void radTextBox1_TextChanged(object sender, EventArgs e) { this.radTextBox1.BackColor = Color.Red; } Note: when you keep pressed a specific key, you will notice that the memory consumption is increased, although if you force the GarbageCollector, it is released. It is also noticeable that there is text lagging while typing. Please refer to the attached gif file. Workaround: this.radTextBox1.TextBoxElement.TextBoxItem.TextBoxControl.BackColor = Color.Red;
To reproduce: ThemeResolutionService.ApplicationThemeName = "Office2013Light"; this.radTextBox2.Enabled = false; Workaround: this.radTextBox2.BackColor = Color.LightGray;
To reproduce: - Disable the control. - The text box has a white background. - Workaround: Set the back color of the RadTimeMaskedEditBoxElement in for the disabled state in Visual Style Builder.
To reproduce: public Form1() { InitializeComponent(); this.radDateTimePicker1.Culture = new System.Globalization.CultureInfo("en-GB"); RadTimePickerLocalizationProvider.CurrentProvider = new MyTimePickerLocalizationProvider(); this.radDateTimePicker1.DateTimePickerElement.ShowTimePicker = true; } class MyTimePickerLocalizationProvider : RadTimePickerLocalizationProvider { public override string GetLocalizedString(string id) { switch (id) { case RadTimePickerStringId.HourHeaderText: return "TEST Hours"; case RadTimePickerStringId.MinutesHeaderText: return "TEST Minutes"; case RadTimePickerStringId.CloseButtonText: return "TEST CLOSE"; default: return string.Empty; } } } Workaround: RadDateTimePickerCalendar calendarBehaviorFrom = this.radDateTimePicker1.DateTimePickerElement.GetCurrentBehavior() as RadDateTimePickerCalendar; calendarBehaviorFrom.Calendar.ShowFooter = true; calendarBehaviorFrom.PopupControl.Opened += PopupControl_PopupOpened; private void PopupControl_PopupOpened(object sender, EventArgs args) { RadDateTimePickerDropDown dd = sender as RadDateTimePickerDropDown; TimePickerDoneButtonContent buttonContent = ((RadPanel)dd.HostedControl).Controls[2] as TimePickerDoneButtonContent; var doneButton = ((Telerik.WinControls.UI.TimePickerDoneButtonElement)(buttonContent.RootElement.Children[0])); doneButton.ButtonElement.Text = RadTimePickerLocalizationProvider.CurrentProvider.GetLocalizedString(RadTimePickerStringId.CloseButtonText); }
To reproduce: - Add RadMaskedEditBox to a form. - Set AutoSize to false. - Set the height of the control to 30. Workaround: radMaskedEditBox1.AutoSize = false; radMaskedEditBox1.MaskedEditBoxElement.TextBoxItem.MinSize = new Size(0, 30);
To reproduce: please refer to the attached gif file. The error is applicable for all controls that use RadColorDialog while editing, e.g. RadGridView, RadPropertyGrid. Workaround: disable the spineditors: private void RadPropertyGrid1_EditorInitialized(object sender, Telerik.WinControls.UI.PropertyGridItemEditorInitializedEventArgs e) { PropertyGridColorEditor colorEditor = e.Editor as PropertyGridColorEditor; if (colorEditor !=null) { RadColorBoxElement el = colorEditor.EditorElement as RadColorBoxElement; ((RadForm)el.ColorDialog.ColorDialogForm).Load += ColorDialogForm_Load1; } } private void ColorDialogForm_Load1(object sender, EventArgs e) { RadColorDialogForm form = sender as RadColorDialogForm; RadPageView pageView = form.RadColorSelector.Controls["radPageView1"] as RadPageView; Telerik.WinControls.UI.RadColorPicker.ProfessionalColors professionalColors = pageView.Pages[3].Controls["professionalColorsControl"] as Telerik.WinControls.UI.RadColorPicker.ProfessionalColors; foreach (Control c in professionalColors.Controls ) { RadSpinEditor spinEditor = c as RadSpinEditor; if (spinEditor!=null) { spinEditor.SpinElement.TextBoxItem.Enabled = false; } } }
Workaround: increase the height: this.radTimePicker1.MinimumSize = new Size(0, 28);
To reproduce: Using the below code, type something in the text box and execute the button shortcut => the caret remains where it was protected override void OnLoad(EventArgs e) { base.OnLoad(e); AddTextBoxControl(); radButton1.ButtonElement.Shortcuts.Add(new RadShortcut(Keys.Alt, new Keys[] { Keys.R })); } private void radButton1_Click(object sender, EventArgs e) { radTextBoxControl1.Text = ""; } Workaround: Instead of setting the Text to empty string, use the control Clear method.
Steps to reproduce: public Form1() { InitializeComponent(); this.Text = Telerik.WinControls.VersionNumber.Number; this.radMaskedEditBox1.Culture = new System.Globalization.CultureInfo("nl-BE"); this.radMaskedEditBox1.MaskType = Telerik.WinControls.UI.MaskType.Numeric; this.radMaskedEditBox1.Mask = "C"; this.radMaskedEditBox1.Value = 570.00; } private void radButton2_Click(object sender, EventArgs e) { this.radMaskedEditBox1.Culture = new System.Globalization.CultureInfo("en-US"); } private void radButton1_Click(object sender, EventArgs e) { this.radMaskedEditBox1.Culture = new System.Globalization.CultureInfo("nl-BE"); } Run the application and change the culture between Dutch and English, you will see that the value is reset instead keep it. Workaround: CultureInfo providerDutch = new CultureInfo("nl-BE"); CultureInfo providerEnglish = new CultureInfo("en-US"); public Form1() { InitializeComponent(); this.Text = Telerik.WinControls.VersionNumber.Number; this.radMaskedEditBox1.Culture = providerDutch; this.radMaskedEditBox1.MaskType = Telerik.WinControls.UI.MaskType.Numeric; this.radMaskedEditBox1.Mask = "C"; this.radMaskedEditBox1.Value = 570.00; } private void radButton1_Click(object sender, EventArgs e) { double tempValue = double.Parse(this.radMaskedEditBox1.Value.ToString(), NumberStyles.Currency | NumberStyles.AllowThousands | NumberStyles.AllowDecimalPoint, providerEnglish); this.radMaskedEditBox1.Culture = new System.Globalization.CultureInfo("nl-BE"); this.radMaskedEditBox1.Value = tempValue; } private void radButton2_Click(object sender, EventArgs e) { double tempValue = double.Parse(this.radMaskedEditBox1.Value.ToString(), NumberStyles.Currency | NumberStyles.AllowThousands | NumberStyles.AllowDecimalPoint, providerDutch); this.radMaskedEditBox1.Culture = new System.Globalization.CultureInfo("en-US"); this.radMaskedEditBox1.Value = tempValue; }
To reproduce: this.radDateTimePicker1.Format = DateTimePickerFormat.Short; this.radDateTimePicker1.Value = new DateTime(2016, 5, 12); this.radTextBox1.Text = "9/5/2016"; Second scenario: this.radDateTimePicker1.Format = DateTimePickerFormat.Short; If you copy "1/7/16" and paste it into RadDateTimeicker, the result date will be "1/7/1616". In the previous version, the result was correct 1/7/2016. Copy the value in the text box and paste it in RadDateTimePicker. Workaround: public Form1() { InitializeComponent(); this.radDateTimePicker1.Format = DateTimePickerFormat.Short; this.radDateTimePicker1.Value = new DateTime(2016, 5, 12); this.radTextBox1.Text = "9/5/2016"; this.radDateTimePicker1.ValueChanging += radDateTimePicker1_ValueChanging; this.radDateTimePicker1.DateTimePickerElement.TextBoxElement.TextBoxItem.TextBoxControl.KeyPress += TextBoxControl_KeyPress; } string clipboardData; private void TextBoxControl_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == '\x16') { if (clipboardData != null) { this.radDateTimePicker1.Text = clipboardData; clipboardData = null; } } } private void radDateTimePicker1_ValueChanging(object sender, Telerik.WinControls.UI.ValueChangingEventArgs e) { if (clipboardData == null) { clipboardData = RadMaskedEditBoxElement.GetClipboardText(); } }
How to reproduce: public Form1() { InitializeComponent(); this.radMaskedEditBox1.Culture = new CultureInfo("ar-EG"); this.radMaskedEditBox1.Mask = "c"; this.radMaskedEditBox1.MaskType = Telerik.WinControls.UI.MaskType.Numeric; } Workaround: handle the KeyDown event private void radMaskedEditBox1_KeyDown(object sender, KeyEventArgs e) { if (this.radMaskedEditBox1.SelectionLength == this.radMaskedEditBox1.Text.Length) { this.radMaskedEditBox1.SelectionLength = 0; } }
To reproduce: - Set the mask to regex and paste with Ctrl + V. Workaround: private void RadmaskedEditBox1_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == '\x16') { radmaskedEditBox1.MaskedEditBoxElement.TextBoxItem.Paste(); } }
To reproduce: Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("es-CO"); radMaskedEditBox1.MaskType = Telerik.WinControls.UI.MaskType.Numeric; radMaskedEditBox1.Mask = "C2"; radMaskedEditBox1.Culture = new System.Globalization.CultureInfo("es-CO"); Click in the masked edit box and press the decimal separator key in the num pad, the cursor is not moved to the desired position. Workaoround: private void RadMaskedEditBox1_KeyUp(object sender, KeyEventArgs e) { if (e.KeyValue == 46) { var textBoxItem = this.radMaskedEditBox1.MaskedEditBoxElement.TextBoxItem; int indexOfDecimalSeparator = this.radMaskedEditBox1.MaskedEditBoxElement.TextBoxItem.Text.ToLower().IndexOf(','); if (indexOfDecimalSeparator + 1 <= textBoxItem.Text.Length) { textBoxItem.SelectionStart = indexOfDecimalSeparator + 1; } else { textBoxItem.SelectionStart = indexOfDecimalSeparator; } e.Handled = true; } }
Workaround: public Form1() { InitializeComponent();); this.richTextBox1.Text = "thess is is a tesssset"; this.radSpellChecker1.AutoSpellCheckControl = this.richTextBox1; this.radSpellChecker1.SpellingFormShowing += radSpellChecker1_SpellingFormShowing; } private void radSpellChecker1_SpellingFormShowing(object sender, SpellingFormShowingEventArgs e) { e.SpellingForm.FormClosed -= SpellingForm_FormClosed; e.SpellingForm.FormClosed += SpellingForm_FormClosed; } private void SpellingForm_FormClosed(object sender, FormClosedEventArgs e) { this.radSpellChecker1.AutoSpellCheckControl = null; this.radSpellChecker1.AutoSpellCheckControl = this.richTextBox1; }
How to reproduce: public RadForm1() { InitializeComponent(); this.radDateTimePicker1.Format = DateTimePickerFormat.Custom; this.radDateTimePicker1.CustomFormat = "MM/dd/yyyy"; this.radDateTimePicker1.DateTimePickerElement.Calendar.HeaderNavigationMode = Telerik.WinControls.UI.HeaderNavigationMode.Zoom; ((Telerik.WinControls.UI.MaskDateTimeProvider)this.radDateTimePicker1.DateTimePickerElement.TextBoxElement.Provider).AutoSelectNextPart = true; } Workaround: public RadForm1() { InitializeComponent(); this.radDateTimePicker1.Format = DateTimePickerFormat.Custom; this.radDateTimePicker1.CustomFormat = "MM/dd/yyyy"; this.radDateTimePicker1.DateTimePickerElement.Calendar.HeaderNavigationMode = Telerik.WinControls.UI.HeaderNavigationMode.Zoom; ((Telerik.WinControls.UI.MaskDateTimeProvider)this.radDateTimePicker1.DateTimePickerElement.TextBoxElement.Provider).AutoSelectNextPart = true; this.radDateTimePicker1.DateTimePickerElement.TextBoxElement.KeyDown += TextBoxElement_KeyDown; } private void TextBoxElement_KeyDown(object sender, KeyEventArgs e) { RadMaskedEditBoxElement tb = (RadMaskedEditBoxElement)sender; MaskDateTimeProvider provider = (MaskDateTimeProvider)tb.Provider; switch (provider.List[provider.SelectedItemIndex].type) { case PartTypes.Month: if (e.KeyCode == Keys.Left) { provider.SelectedItemIndex = provider.List.Count; } break; case PartTypes.Year: if (e.KeyCode == Keys.Right) { provider.SelectedItemIndex = -1; } break; } }
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.