To reproduce: - Set the mask to numeric. - Change the value and check the Modified property. - Workaround: string oldValue = string.Empty; void radMaskedEditBox1_LostFocus(object sender, EventArgs e) { if (oldValue != radMaskedEditBox1.Text) { radMaskedEditBox1.Modified = true; } else { radMaskedEditBox1.Modified = false; } oldValue = radMaskedEditBox1.Text; }
To reproduce: handle the following event and start typing in the editable part. You will notice that the TextChanged event is not fired: Me.RadPopupEditor1.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDown AddHandler Me.RadPopupEditor1.TextChanged, AddressOf RadPopupEditor1_TextChanged Workaround: handle the RadPopupEditor.TextBoxElement.TextChanged event instead.
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: - 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: 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.
When you drag a RadDateTimePicker from the Toolbox and drop it onto the form, the TabStop property is false by default. If you change it in the Properties grid to true and save the form, try to open the form designer again. As a result the TabStop property is set to false as if no changes have been performed.
Please refer to the attached screenshot. Workaround: Me.RadDateTimePicker1.DateTimePickerElement.TextBoxElement.MaxSize = New Size(0, 20)
With the RadMaskedEditBox and MaskType set to Numeric and using simple data binding the mask is not being displayed properly As a workaround handle ValueChanged event and apply the formatting in this event: dim alreadyExecuted as Boolean Sub ValueChange(sender As Object, e As EventArgs) Handles EditBoxWithBinding.ValueChanged If Not alreadyExecuted Then alreadyExecuted = True EditBoxWithBinding.MaskedEditBoxElement.Provider.Validate(EditBoxWithBinding.Value.ToString()) alreadyExecuted = False End If End Sub
To reproduce: this.radDateTimePicker1.ThemeName = "TelerikMetroTouch"; var calendar1 = (radDateTimePicker1.DateTimePickerElement.CurrentBehavior as RadDateTimePickerCalendar); calendar1.ShowTimePicker = true; Workaround: calendar1.Calendar.Width = 250; calendar1.DropDownMinSize = new System.Drawing.Size(500, 250);
How to reproduce: Check also the attached video public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void radButton1_Click(object sender, EventArgs e) { this.radAutoCompleteBox1.AutoCompleteItems.Clear(); List<RadListDataItem> autoCompleteEntries = new List<RadListDataItem>(); for (int i = 0; i < 10000; i++) { autoCompleteEntries.Add(new RadListDataItem("Joe Smith", "joe@fakecompany.com")); autoCompleteEntries.Add(new RadListDataItem("Adam Petersen", "adam@qwerty.com")); autoCompleteEntries.Add(new RadListDataItem("Jack Russel", "jack@russel.nocom")); autoCompleteEntries.Add(new RadListDataItem("Daniel Finger", "daniel.pinger@gmail.com")); autoCompleteEntries.Add(new RadListDataItem("Richard Vail", "rvail@richardvail.com")); autoCompleteEntries.Add(new RadListDataItem("Sebastian Jonnson", "s.jonnson@sjonnson.com")); autoCompleteEntries.Add(new RadListDataItem("Lee Cooper", "lee.cooper@coopercoorp.com")); autoCompleteEntries.Add(new RadListDataItem("Kelvin Clain", "kclain@clainkevin.com")); autoCompleteEntries.Add(new RadListDataItem("Maria Jenson", "mjenson@mariajenson.com")); autoCompleteEntries.Add(new RadListDataItem("Chelsea Maarten", "chelsea@maarten.com")); } this.radAutoCompleteBox1.AutoCompleteItems.AddRange(autoCompleteEntries); } } Workaround: use Begin/End update block and reset the private patternText field: public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void radButton1_Click(object sender, EventArgs e) { typeof(RadTextBoxListElement).GetField("patternText", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(this.radAutoCompleteBox1.ListElement, null); this.radAutoCompleteBox1.AutoCompleteItems.Clear(); List<RadListDataItem> autoCompleteEntries = new List<RadListDataItem>(); for (int i = 0; i < 10000; i++) { autoCompleteEntries.Add(new RadListDataItem("Joe Smith", "joe@fakecompany.com")); autoCompleteEntries.Add(new RadListDataItem("Adam Petersen", "adam@qwerty.com")); autoCompleteEntries.Add(new RadListDataItem("Jack Russel", "jack@russel.nocom")); autoCompleteEntries.Add(new RadListDataItem("Daniel Finger", "daniel.pinger@gmail.com")); autoCompleteEntries.Add(new RadListDataItem("Richard Vail", "rvail@richardvail.com")); autoCompleteEntries.Add(new RadListDataItem("Sebastian Jonnson", "s.jonnson@sjonnson.com")); autoCompleteEntries.Add(new RadListDataItem("Lee Cooper", "lee.cooper@coopercoorp.com")); autoCompleteEntries.Add(new RadListDataItem("Kelvin Clain", "kclain@clainkevin.com")); autoCompleteEntries.Add(new RadListDataItem("Maria Jenson", "mjenson@mariajenson.com")); autoCompleteEntries.Add(new RadListDataItem("Chelsea Maarten", "chelsea@maarten.com")); } this.radAutoCompleteBox1.ListElement.DataLayer.ListSource.BeginUpdate(); this.radAutoCompleteBox1.AutoCompleteItems.AddRange(autoCompleteEntries); this.radAutoCompleteBox1.ListElement.DataLayer.ListSource.EndUpdate(); } }
Steps to reproduce: Set MaskType to Numeric and Mask = "n2". Click into the field to deselect contents. Caret is at the end of the string. Backspace twice and the data entry caret now jumps to BEFORE the decimal point. Workaround: this.RadMaskedEditBox.KeyPress += new KeyPressEventHandler(RadMaskedEditBox_KeyPress); } void RadMaskedEditBox_KeyPress(object sender, KeyPressEventArgs e) { RadMaskedEditBox textBox = ((RadMaskedEditBox)sender); int selectionStart = textBox.SelectionStart; bool beforePoint = selectionStart - 2 >= 0 && textBox.Text[selectionStart - 2] == '.'; if (e.KeyChar == 8 && beforePoint) { NumericMaskTextBoxProvider numericProvider = (NumericMaskTextBoxProvider)textBox.MaskedEditBoxElement.Provider; numericProvider.KeyPress(sender, e); e.Handled = true; textBox.SelectionStart++; } }
To reproduce: radMaskedEditBox1.MaskType = MaskType.Numeric; radMaskedEditBox1.Mask = "G"; Then enter 123.45 Workaround: Use "N" mask with fixed decimal places.
To reproduce: add a RadMaskedEditBox and use the following code: Sub New() InitializeComponent() Me.RadMaskedEditBox1.MaskType = Telerik.WinControls.UI.MaskType.Numeric Me.RadMaskedEditBox1.Mask = "N1" Dim item As Item = New Item(Nothing, "Item1") RadMaskedEditBox1.DataBindings.Add("Value", item, "StockTypeId", True, DataSourceUpdateMode.OnPropertyChanged) End Sub Public Class Item Private _stockId As Nullable(Of Integer) Public Sub New(value As Nullable(Of Integer), name As String) Me._stockId = value End Sub Public Property StockTypeId() As Nullable(Of Integer) Get Return _stockId End Get Set(ByVal value As Nullable(Of Integer)) _stockId = value Console.WriteLine(value) End Set End Property End Class The user is not allowed to enter a new numeric value. Wokraround: Public Class CustomNumericCharacterTextBoxProvider Inherits NumericCharacterTextBoxProvider Private owner As RadMaskedEditBoxElement Public Sub New(mask As String, culture As CultureInfo, numericType As NumericCharacterTextBoxProvider.RadNumericMaskFormatType, _ owner As RadMaskedEditBoxElement) MyBase.New(mask, culture, numericType, owner) Me.owner = owner End Sub Protected Overrides Function AllowAppendCharacters() As Boolean If owner.Text = "" AndAlso owner.Mask = "N1" Then Return True End If Return MyBase.AllowAppendCharacters() End Function End Class Public Class CustomMaskedEditBox Inherits RadMaskedEditBox Public Overrides Property ThemeClassName As String Get Return GetType(RadMaskedEditBox).FullName End Get Set(value As String) MyBase.ThemeClassName = value End Set End Property Public Sub New() MyBase.New() Me.MaskType = Telerik.WinControls.UI.MaskType.Numeric Me.Mask = "N1" Dim numericMaskProvider As NumericMaskTextBoxProvider = Me.MaskedEditBoxElement.Provider Dim fi As FieldInfo = GetType(NumericMaskTextBoxProvider).GetField("provider", BindingFlags.Instance Or BindingFlags.NonPublic) fi.SetValue(numericMaskProvider, _ New CustomNumericCharacterTextBoxProvider(numericMaskProvider.Mask, numericMaskProvider.Culture, _ NumericMaskTextBoxProvider.GetFormat(numericMaskProvider.Mask, numericMaskProvider.Culture), _ Me.MaskedEditBoxElement)) End Sub End Class
The RadTokenizedTextItem should reference the data items as well.
To reproduce: - Change the culture of the RadDateTime picker to Russian. - Change the month to August and select the month part when the drop down is closed. Workaround: radDateTimePicker1.Format = DateTimePickerFormat.Custom; radDateTimePicker1.CustomFormat = "dd/MMM/yyyy";
RadMaskedEditBox - At design time the NullText is not synchronized with the NullDate property. I was able to Set NullText to "aaa", set the NullDate to 24/02/2012 and set the Value and 24/02/2012 and see after that the NullText
All controls (i.e. RadGridView, RadPropertyGrid, etc.), which use textbox editor, containing HostedTextBoxBase descendant, can be spelled by the RadSpellChecker. But the red underline is not displayed entirely. The inside hosted text box should have a bigger height.
RadDateTimePicker ValueChanging event cannot be canceled with e.Cancel = true;
Allow the RadDateTimePicker editor of RadGridView to allow replacement of the months' popup. Resolution: This behavior can be achieved when set the HeaderNavigationMode property to Zoom of RadCalendar. The feature is introduced in Q2 2014. For example: void radGridView1_CellEditorInitialized(object sender, Telerik.WinControls.UI.GridViewCellEventArgs e) { RadDateTimeEditor dtEditor = e.ActiveEditor as RadDateTimeEditor; if (dtEditor != null) { RadDateTimeEditorElement element = (RadDateTimeEditorElement)dtEditor.EditorElement; element.Calendar.HeaderNavigationMode = HeaderNavigationMode.Zoom; } }