To reproduce: - Add RadMaskedEditBox to a form and set its ReadOnly property to true. - Paste a valid value using the Ctrl+V key combination. Workaround: - Disable the corresponding key combination in the KeyDown event: void radMaskedEditBox1_KeyDown(object sender, KeyEventArgs e) { if (e.Control && e.KeyCode == Keys.V) { e.SuppressKeyPress = true; } }
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(); } }
RadMaskedEditBox - has incorrect behavior when decimal separator is "D". You can set only one digit before separator.
RadMaskedEditBox - has incorrect behavior if you set values with differed length. Workaround is to reset the value before to set new one: C# RadMaskedEditBox1.Value = null; RadMaskedEditBox1.Value = "YourText"; VB RadMaskedEditBox1.Value = Nothing RadMaskedEditBox1.Value = "YourText"
The initial loading performance can be improved.
The performance can be improved by creating the RadContextMenu only when it is needed not when the element is created.
To reproduce: use the following code: public Form1() { InitializeComponent(); RadMaskedEditBox maskControl = new RadMaskedEditBox(); maskControl.TextMaskFormat = System.Windows.Forms.MaskFormat.ExcludePromptAndLiterals; CultureInfo ci = CultureInfo.CreateSpecificCulture(Thread.CurrentThread.CurrentCulture.Name); ci.NumberFormat.NumberGroupSeparator = ""; maskControl.Culture = ci; maskControl.Text = "2"; object o = maskControl.Value; //Exception!! this.Controls.Add(maskControl); } Workaround: Do not set NumberGroupSeparator to String.Empty when TextMaskFormat=ExcludePromptAndLiterals
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.
To reproduce: this.radTextBox1.Text = "sample"; this.radTextBox1.TextBoxElement.BackColor = Color.Red; this.radTextBox1.TextBoxElement.UseDefaultDisabledPaint = false; this.radTextBox1.TextBoxElement.Enabled = false; In previous version (e.g. Q1 2014 SP1) the TextBoxElement is not rendered red.
1. Add a RadMaskedEditBox and a RadCheckbox to your form. 2. Add ToggleStateChanged event to the RadCheckbox. 3. Use the following code: private void radCheckBox1_ToggleStateChanged(object sender, StateChangedEventArgs args) { if (args.ToggleState == Telerik.WinControls.Enumerations.ToggleState.On) { radMaskedEditBox1.Mask = "^[0-9]{5}$"; radMaskedEditBox1.MaskType = MaskType.Regex; } else if (args.ToggleState == Telerik.WinControls.Enumerations.ToggleState.Off) { radMaskedEditBox1.Mask = ""; radMaskedEditBox1.MaskType = MaskType.None; } } 4. Start the application 5. Check and uncheck the checkbox (now ToggleStateChanged event was fired) 6. Type some letters to the RadMaskedEditBox (e.g. "aaa") 7. Press tab Workaround: RegexMaskTextBoxProvider provider; private void radCheckBox1_ToggleStateChanged(object sender, Telerik.WinControls.UI.StateChangedEventArgs args) { if (args.ToggleState == Telerik.WinControls.Enumerations.ToggleState.On) { radMaskedEditBox1 = new RadMaskedEditBox(); radMaskedEditBox1.Mask = "^[0-9]{5}$"; radMaskedEditBox1.MaskType = MaskType.Regex; radMaskedEditBox1.MaskedEditBoxElement.TextBoxItem.HostedControl.Leave += HostedControl_Leave; provider = (RegexMaskTextBoxProvider) radMaskedEditBox1.MaskedEditBoxElement.Provider; } else if (args.ToggleState == Telerik.WinControls.Enumerations.ToggleState.Off) { radMaskedEditBox1.MaskedEditBoxElement.Mask = ""; radMaskedEditBox1.MaskType = MaskType.None; } } private void HostedControl_Leave(object sender, EventArgs e) { if (radMaskedEditBox1.MaskType == MaskType.None && provider != null) { provider.GetType().GetField("mask", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue(provider, "*"); } }
To reproduce: - Set the mask like this: private void RadForm1_Load(object sender, EventArgs e) { radMaskedEditBox1.MaskType = MaskType.Regex; radMaskedEditBox1.Mask = "^[0-9]{6} [A-Z]{4} [0-9]{7}$|^[0-9]{5}$"; } - Start the application, enter five digits and pres Tab. - The error icon apperas. Workaround: - Set the Mask before the MaskType: radMaskedEditBox1.Mask = "^[0-9]{6} [A-Z]{4} [0-9]{7}$|^[0-9]{5}$"; radMaskedEditBox1.MaskType = MaskType.Regex;
To reproduce: Place a MaskedTextBox on a Form Set 'MaskType' to 'Numeric' (and in my case I have Mask set to 'D' to allow integer values only) Run the application / open the form - by default the masked textbox has a value of '0' Elsewhere (i.e. notepad) enter and copy a text like 'CT_1234' into the clipboard (please note the starting non-numeric string characters) Go back to the application / form and click into the masked text box Select the pre-existing value (by default the '0' mentioned above or any other value i.e. '11111' .. and by select I mean via mouse or [Shift]+[Arrow Key Left/Right]) Press [Ctrl+V] >> Nothing happens .. what should happen though is that the selected text is overridden with '1234' However, if you have no text selected in the masked text box and place the cursor in it i.e. at the very beginning or end of the existing value, pasting works as expected.. the value '1234' is added (and correctly 'dropping the 'CT_' in front of it).
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: - Add a blank mask to a form and set its Mask type to Standard. - Set its mask to "###-##-##"; - Set its PromptChar to a single space. - Now set the caret before the '-' and type a two digits (the first digit is overridden by the second because the caret is not moved properly). Workaround: Subscribe to the following KeyDown event: void box1_KeyDown(object sender, KeyEventArgs e) { int caretPos = this.box1.MaskedEditBoxElement.TextBoxItem.SelectionStart; if ((e.KeyCode != Keys.Left && e.KeyCode != Keys.Right) && (e.KeyCode != Keys.Up && e.KeyCode != Keys.Down)) { if (caretPos < box1.Text.Length && box1.Text[caretPos] == '-') { this.box1.MaskedEditBoxElement.TextBoxItem.SelectionStart++; } } }
To reproduce: public Form1() { InitializeComponent(); this.radAutoCompleteBox1.AppendText("abc;"); } Workaround: append the text in the Form.Load event. private void Form1_Load(object sender, EventArgs e) { this.radAutoCompleteBox1.AppendText("abc;"); }
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(); }
According to MSDN controls should not change the focus when handling the Enter event
Workaround: radSpinEditor1.SpinElement.TextBoxItem.HostedControl.MouseWheel += HostedControl_MouseWheel;