Last Updated: 18 Mar 2020 14:41 by ADMIN
Created by: Dawid
Comments: 3
Category: MaskedInput
Type: Feature Request

Add a property to force only allowing uppercase values, without needing to specify a number of characters or have the underline in the control.


This is achievable in code, but it seems unnecessary to go to such lengths for each instance where it is needed.


private void bankCode_ValueChanging(object sender, Telerik.Windows.Controls.MaskedInput.RadMaskedInputValueChangingEventArgs e)
            if (e.NewValue == null)

            string newValue = e.NewValue.ToString();
            if (newValue.Length > 0)
                newValue = newValue.ToUpper();
            this.txtBankCode.ValueChanging -= this.bankCode_ValueChanging;
            this.txtBankCode.Value = newValue;
            this.txtBankCode.ValueChanging += this.bankCode_ValueChanging;
Last Updated: 20 Feb 2020 13:39 by ADMIN
Release R1 2020 SP

NumericInput or CurrencyInput with value 555666.00.

Select the part '666' press 7. This results is

55|57.00 (caret should be after 7 but is actually shifted to wrong position)

Last Updated: 04 Feb 2020 15:04 by ADMIN

Dear Telerik Team,

We are facing an issue in MaskedCurrencyInput when using Chinese keyboard. MaskedCurrencyInput control is showing numbers along with other characters that are not numeric. 
In case of typing alphabets, MaskedCurrencyInput is showing suggestion box of chinese characters and also showing alphabetic characters on input area.

This is working fine in English keyboards but in chinese keyboard Chinese Suggestion box and chinese characters are appearing which should not. 

Steps to Reproduce:
1- Use MaskedCurrencyInput of Telerik in XAML WPF.
2- Type alphabets e.g. abcd in MaskedCurrencyInput field box. Chinese Suggestion would appear.

Chinese Suggestion box and chinese characters should not appear. Kindly let me know if it would be resolved or any work around to stop this chinese suggestion box to be opened.

Last Updated: 20 Jan 2020 11:31 by ADMIN
Release R1 2020
In order to reproduce,  you need to focus the control when you run the application.

1.When you press the backspace key it removes the last character and after pressing it a second time the character will be replaced with the removed character.

2. When paste(Ctrl+V) a text in the control, the text is ignoring the current position of the caret and position at the beginning of the control.
Last Updated: 15 Nov 2019 09:28 by ADMIN
Release LIB 2019.3.1118

CurrenyInput with Indian Culture. Value is 123456789.

Controls shows: "₹ 1,234,56,789.00"

Expected is : "₹ 12,34,56,789.00"

Last Updated: 30 Oct 2019 08:19 by ADMIN
Release R3 2019 SP1
Setting these properties you can still select the control and change the text inside. 
Last Updated: 21 Aug 2019 13:29 by ADMIN
Created by: Nebojsa Mancic
Comments: 1
Category: MaskedInput
Type: Feature Request

You have to add next features to RadMaskedNumericInput

 - Data binding to object

- Value could be decimal

- Value range, from min to max,



so this control could be useful in complex data entry form. 

Last Updated: 05 Jul 2019 08:44 by ADMIN
Release LIB 2019.2.708 (7/8/2019)
When Culture is set to Russian("ru-RU") control shows unexpected "c" symbol and also the property IsCurrenySymolVisible set to False is not respected and the Ruble symbol stays visible.
Last Updated: 12 Jun 2019 16:49 by ADMIN
Release R2 2019 SP1
The SpinMode property is set to Position and the Mask is like "d" or "#".

 The "d" means that a digit pattern is required , "#" is for non-required digit. 

When the caret is on the empty placeholder and the Key.Up Arrow is pressed, non-numeric characters appear first ("! " then """ then "#" etc).

The expected behavior is that only digits are looped in such mask *digit* positions.
Last Updated: 19 Apr 2019 15:01 by ADMIN
Release LIB 2019.1.422 (04/22/2019)

RadMaskedCurrencyInput with the following properties:

Mask="#14.2" , FormatString="#,0.##" and IsCurrencySymbolVisible= True

Pressing minus key produces ArgumentException

Message "String cannot be of zero length.\r\nParameter name: oldValue" string

  at System.String.ReplaceInternal(String oldValue, String newValue)
   at System.String.Replace(String oldValue, String newValue)
   at Telerik.Windows.Controls.RadMaskedCurrencyInput.CoerceDisplayTextOverride()
   at Telerik.Windows.Controls.RadMaskedInputBase.CoerceDisplayText()
   at Telerik.Windows.Controls.RadMaskedInputBase.OnValueInternalChanged(DependencyObject d, DependencyPropertyChangedEventArgs args)
   at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
   at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
   at System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal)
   at System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value)
   at Telerik.Windows.Controls.RadMaskedCurrencyInput.OnIsNegativeValueChanged()
   at Telerik.Windows.Controls.RadMaskedCurrencyInput.set_IsNegativeValue(Boolean value)
   at Telerik.Windows.Controls.RadMaskedCurrencyInput.ToggleNegativeSignKey()

Last Updated: 16 Apr 2019 08:20 by ADMIN
Release LIB 2019.1.422 (04/22/2019)

This reproduces only in a no-mask scenario (Mask="").

For example, if you enter the codes for º and ª, they appears as 'o' and 'a'. In other words, the bigger version of the symbol.

Here you can find an alt codes reference list:

Last Updated: 08 Apr 2019 11:24 by ADMIN
Release LIB 2019.1.408 (04/08/2019)
The control wrongly parse the entered value in cultures that have a comma for a decimal separator
Last Updated: 01 Apr 2019 07:12 by ADMIN

RadMaskedNumericInput Maximum value setting is not working with hungarian culture settings.


Steps to reproduce:

- Open the attached project, fix the references and start the application

- Click button "English"

- Select the first item from the dropdown

- Inputs are changing to 1433.2 and 1810.9 - OK

- Select the 2nd item from the dropdown

- Inputs are changing to 0 and 59 - OK

- Click button "Hungarian"

- Select the first item from the dropdown

- Inputs are changing to 1433.2 and 1433.2 - NOT OK, Why?




Last Updated: 25 Jan 2019 13:35 by ADMIN
MaskedInput focus behaves different when it is set in code behind. When the textbox is on focus and new character is entered the text remains the same and the new character is added at the beginning of the textbox.

Scheduled for:
The fix for this issue will be available with LIB (version 2019.1.128) scheduled for publishing on Monday, 28th January 2019.
Last Updated: 25 Jan 2019 13:27 by ADMIN
Scheduled for:
The fix for this issue will be available with LIB (version 2019.1.128) scheduled for publishing on Monday, 28th January 2019.

Last Updated: 25 Jan 2019 13:26 by ADMIN

Scheduled for:
The fix for this issue will be available with LIB (version 2019.1.128) scheduled for publishing on Monday, 28th January 2019.
Last Updated: 23 Jan 2019 16:08 by ADMIN
Created by: Nebojsa Mancic
Comments: 1
Category: MaskedInput
Type: Feature Request
I think that would be nice to add "clear value key" to radmaskednumericinput, it should be Delete key as default value, and when you press Delete key while editing , valued should be set to zero, as when Clear button clicked.
Last Updated: 24 Oct 2018 13:51 by ADMIN
Office 2016 Theme MaskedInputControl.


Space for clear button is reserved which is unexpected. Button should be hidden and no space should be reserved like in, for example Office_Black Theme.

Last Updated: 10 Oct 2018 10:40 by ADMIN
For example the following culture:

 this.currency.Culture = new System.Globalization.CultureInfo("prs-AF"); has     


    CurrencyDecimalDigits: 2
===>  CurrencyDecimalSeparator: "."
===>  CurrencyGroupSeparator: ","
    CurrencyGroupSizes: {int[1]}
    CurrencyNegativePattern: 3
    CurrencyPositivePattern: 0
    CurrencySymbol: "؋"
    DigitSubstitution: NativeNational
    IsReadOnly: false
    NaNSymbol: "ناعدد"
    NativeDigits: {string[10]}
    NegativeInfinitySymbol: "-∞"
    NegativeSign: "-"
    NumberDecimalDigits: 2
===>  NumberDecimalSeparator: ","
===>  NumberGroupSeparator: "."
    NumberGroupSizes: {int[1]}
    NumberNegativePattern: 3
    PerMilleSymbol: "‰"
    PercentDecimalDigits: 2
    PercentDecimalSeparator: ","
    PercentGroupSeparator: "."
    PercentGroupSizes: {int[1]}
    PercentNegativePattern: 1
    PercentPositivePattern: 1
    PercentSymbol: "%"
    PositiveInfinitySymbol: "∞"
    PositiveSign: "+"

Typing 12345 in the control produces Value 123 which is wrong. Parsing becomes wrong after the group separator kicks in.
Last Updated: 10 Oct 2018 10:40 by ADMIN
For example, the Mask "hh:mm:ss.ff" will render the value properly. But if you change the value at runtime (by pressing a key on the keyboard), the milliseconds will be re-parsed and will be displayed wrongly. 

For example, if you have the value "12:13:14.50" and you go to the ".50" part (between the decimal separator and the number 5). And then press 3, the milliseconds will change to ".03".

To work this around you can create a custom masked input control and override its CoerceTextOverride() method. There you can implement some logic that replaces the wrong milliseconds text. Here is an example in code:

public class CustomMaskedDateTimeInput : RadMaskedDateTimeInput
	protected override string CoerceTextOverride(ref int selectionStart)
		var text = base.CoerceTextOverride(ref selectionStart);
		if (this.Value.HasValue && 
			this.Mask != null && 
			int millisecondsAllowedLength = GetAllowedMillisecondsLength(this.Mask); // example: .ff means that there are 2 allowed millisecond chars
			int millisecondsMaxLength = 3; // max = 999

			var milliseconds = this.Value.Value.Millisecond.ToString(); // the original milliseconds give from the value
			var zeroesCount = millisecondsMaxLength - milliseconds.Length; // how many zeroes should be append before the millseconds string value

			milliseconds = new string('0', zeroesCount) + milliseconds; // append the zeroes

			// apply the milliseconds restriction given by the Mask (.ff - two symbols)
			if (milliseconds.Length > millisecondsAllowedLength)
				int charsToRemoveCount = milliseconds.Length - millisecondsAllowedLength;
				for (int i = 0; i < charsToRemoveCount; i++)
					milliseconds = milliseconds.Remove(milliseconds.Length - 1, 1);

			// replace the default parsed millseconds part of the string with the custom milliseconds
			var millisecondsIndex = text.LastIndexOf(".") + 1;
			text = text.Remove(millisecondsIndex, millisecondsMaxLength - millisecondsAllowedLength);
			text = text.Insert(millisecondsIndex, milliseconds);

		return text;

	private int GetAllowedMillisecondsLength(string mask)
		int length = 0;
		var millisecondsIndex = mask.LastIndexOf(".") + 1;
		if (millisecondsIndex != -1)
			length = mask.Length - millisecondsIndex;
		return length;
1 2 3 4 5 6