to reproduce this bug : add RadDateTimePicker and set culture to fa-IR change the header navigation mode to zoom with : Me.radDateTimePicker1.DateTimePickerElement.Calendar.HeaderNavigationMode = HeaderNavigationMode.Zoom popup the date time picker then georgian dates are displayed i'll attach screenshots of what happening.
How to reproduce: Just open the popup with the Alt and Down arrow key combination, you will notice that the value changes Workaround: public partial class Form1 : Form { public Form1() { InitializeComponent(); this.radDateTimePicker1.DateTimePickerElement.KeyDown += DateTimePickerElement_KeyDown; } private void DateTimePickerElement_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.F4 || (e.KeyData == (Keys.Alt | Keys.Down))) { e.Handled = true; } } }
To reproduce: public Form1() { InitializeComponent(); this.radTextBox1.Text = "abcd"; this.radTextBox2.Text = "abcd"; this.radTextBoxControl1.Text = "abcd"; this.radTextBoxControl2.Text = "abcd"; this.radTextBox2.Multiline = true; this.radTextBoxControl2.Multiline = true; this.textBox1.Text= "abcd"; this.textBox2.Text= "abcd"; this.textBox2.Multiline = true; } Workaround: set the Multiline property to true in the Form.Load event. Second workaround: this.radTextBox2.TextBoxElement.TextBoxItem.Margin = new Padding(-2, 0, 0, 0);
To reproduce: - select the whole date and press delete. - the value should be cleared at this point not when the control loses the focus. Workaround: Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load AddHandler RadDateTimePicker1.KeyDown, AddressOf KeyDown_EventHandler End Sub Private Sub KeyDown_EventHandler(sender As Object, e As KeyEventArgs) If e.KeyData = Keys.Delete Then e.Handled = True RadDateTimePicker1.SetToNullValue() End If End Sub
To reproduce: Add a RadTextBoxControl and set the SelectionColor property to Red. You will notice that the selection color is semi-transparent and it seems like pink. In order to obtain real Red selection color, it is necessary to set the SelectionOpacity property to 255. However, the selected text is not visible. Please refer to the attached screenshot. Workaround: public class CustomTextBoxControl : RadTextBoxControl { public override string ThemeClassName { get { return typeof(RadTextBoxControl).FullName; } } protected override RadTextBoxControlElement CreateTextBoxElement() { return new CustomRadTextBoxControlElement(); } } public class CustomRadTextBoxControlElement : RadTextBoxControlElement { protected override Type ThemeEffectiveType { get { return typeof(RadTextBoxControlElement); } } protected override TextBoxViewElement CreateViewElement() { return new CustomTextBoxViewElement(); } } public class CustomTextBoxViewElement : TextBoxViewElement { protected override void PaintChildren(IGraphics graphics, Rectangle clipRectange, float angle, SizeF scale, bool useRelativeTransformation) { this.SelectionPrimitive.PaintPrimitive(graphics, angle, scale); base.PaintChildren(graphics, clipRectange, angle, scale, useRelativeTransformation); } protected override void PostPaintChildren(IGraphics graphics, Rectangle clipRectange, float angle, SizeF scale) { if (this.SelectionPrimitive == null) { return; } if (this.Multiline && this.WordWrap) { this.SelectionPrimitive.TextBoxElement.Navigator.RestoreSelection(); } } }
To reproduce: 1. Enter some text and click the first button. Both properties, Text and Value contain the expected value. 2. Click the second button to clear the text and value. 3. Enter some text again and click the first button. You will notice that the Value remains empty. public RadForm1() { InitializeComponent(); this.radMaskedEditBox1.MaskType = Telerik.WinControls.UI.MaskType.None; this.radMaskedEditBox1.Mask = "CCCCCCC"; } private void radButton1_Click(object sender, EventArgs e) { this.radLabel1.Text = "Text: " + this.radMaskedEditBox1.Text; this.radLabel2.Text = "Value: " + this.radMaskedEditBox1.Value + ""; } private void radButton2_Click(object sender, EventArgs e) { this.radMaskedEditBox1.Clear(); } Workaround: use MaskType.Standard
The issue exist in the versions after Q1 2017 Workaround: Class MyTextBox Inherits RadTextBoxControl Protected Overrides Function CreateTextBoxElement() As RadTextBoxControlElement Return New MyTextBoxElement() End Function End Class Class MyTextBoxElement Inherits RadTextBoxControlElement Protected Overrides ReadOnly Property ThemeEffectiveType As Type Get Return GetType(RadTextBoxControlElement) End Get End Property Protected Overrides Function CreateViewElement() As TextBoxViewElement Return New MyWrapPanel End Function End Class Class MyWrapPanel Inherits TextBoxViewElement Protected Overrides Function InsertTextBlocks(index As Integer, text As String, blockType As Type) As Integer If String.IsNullOrEmpty(text) Then Return index End If Dim textBuilder As New StringBuilder() For i As Integer = 0 To text.Length - 1 Dim symbol As Char = text(i) If Char.IsWhiteSpace(symbol) OrElse symbol = TextBoxViewElement.TabSymbol OrElse symbol = TextBoxViewElement.LineFeedSymbol OrElse symbol = TextBoxViewElement.CarriageReturnSymbol Then If textBuilder.Length > 0 Then Dim textBlock As ITextBlock = Me.CreateBlock(textBuilder.ToString(), blockType) If index >= Me.Children.Count Then Me.Children.Add(TryCast(textBlock, RadElement)) index = Me.Children.Count - 1 textBlock.Index = index Else textBlock.Index = index Me.Children.Insert(index, TryCast(textBlock, RadElement)) End If textBuilder = New StringBuilder() index += 1 End If Dim tabBlock As ITextBlock = Me.CreateBlock(symbol.ToString(), blockType) tabBlock.Index = index Me.Children.Insert(index, TryCast(tabBlock, RadElement)) index += 1 Continue For End If textBuilder.Append(symbol) Next If textBuilder.Length > 0 Then Dim textBlock As ITextBlock = Me.CreateBlock(textBuilder.ToString(), blockType) textBlock.Index = index Me.Children.Insert(index, TryCast(textBlock, RadElement)) index += 1 End If Return index - 1 End Function End Class
Please refer to the attached sample project and attached gif file which illustrates the desired behavior when RadForm1 is run. If you run RadForm2 which uses RadDropDownList, the binding doesn't work as expected. Workaround: this.radDropDownList1.SelectedIndexChanged += RadDropDownList1_SelectedIndexChanged; this.radDropDownList1.DisplayMember = "Naziv"; this.radDropDownList1.ValueMember = "Id"; this.radDropDownList1.DataSource = bs; private void RadDropDownList1_SelectedIndexChanged(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e) { if (e.Position > -1) { Roditelj parent = this.radDropDownList1.SelectedItem.DataBoundItem as Roditelj; this.radDropDownList2.DataSource = null; this.radDropDownList2.DisplayMember = "Naziv"; this.radDropDownList2.ValueMember = "Id"; this.radDropDownList2.DataSource = parent.Djeca; } }
Please refer to the attached sample project and try to open the form's designer. If you comment [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] for the EditarTextBox property (typeof(RadTextBox)), clean and rebuild, the designer is opened as expected. Workaround: use RadTextBoxControl.
How to reproduce: this.radMaskedEditBox1.Font = new System.Drawing.Font("Segoe UI", 20F); this.radMaskedEditBox1.MaskType = Telerik.WinControls.UI.MaskType.Standard; this.radMaskedEditBox1.Mask = "#####-######"; this.radMaskedEditBox1.Value = "47997006886"; Workaround: this.radMaskedEditBox1.Font = new System.Drawing.Font("Segoe UI", 20F); this.radMaskedEditBox1.MaskType = Telerik.WinControls.UI.MaskType.Standard; this.radMaskedEditBox1.Mask = "#####-######"; this.radMaskedEditBox1.Text = "47997006886";
To reproduce: - Add text that contain multiple blank lines to a textBox - Set SpellCheckMode to AllAtOnce - Perform a spell check.
To reproduce: - Set the mask to IP. - Change the culture to German. Workaround: Set the Culture of the RadMaskedEditBox to English.
To reproduce: public Form1() { InitializeComponent(); this.radMaskedEditBox1.Mask = "9999999999"; this.radMaskedEditBox1.MaskType = Telerik.WinControls.UI.MaskType.Standard; this.radMaskedEditBox1.PromptChar = Convert.ToChar(" "); } private void radButton1_Click(object sender, EventArgs e) { this.radMaskedEditBox1.Clear(); this.radLabel1.Text = "Value = " + this.radMaskedEditBox1.Value + Environment.NewLine + "Text = " + this.radMaskedEditBox1.Text; } Workaround: set the Value to null as well.
Users cannot edit the A/P symbols with CustomMask set to "hh:mm:sst" or "hh:mm:sstt"
How to reproduce: 1. Install Telerik Controls (version: 2016.3.1024) 2. Launch Visual studio. Create Windows application project. 3. Drop RadPopupContainer from the toolbox on to the windows form. Save the form. 4. Mouse click on the control on design canvas to select RadScrollablePanelContainer panel. 5. Now click on smart tag of RadScrollablePanelContainer panel and select "Undock in parent container" option. 6. Now separate RadScrollablePanelContainer panel by moving it to some location on the form. Save the form. 7. Try to move RadPopupContainer. Observe that it does not allow to move. 8. Click on the smart tag of RadScrollablePanelContainer panel and select "Dock in parent" option. Observe that the RadScrollablePanelContainer panel is not docked into the RadPopupContainer control.
To reproduce: this.radDateTimePicker1.MinDate = DateTime.Now; this.radDateTimePicker1.MaxDate = DateTime.Now; Please refer to the attached screenshots. Although the user is not allowed to change the selection, the future dates are not grayed out as the dates before the MinDate. Workaround: public RadForm1() { InitializeComponent(); this.radDateTimePicker1.MinDate = DateTime.Now; this.radDateTimePicker1.MaxDate = DateTime.Now; RadDateTimePickerCalendar calendarBehavior = this.radDateTimePicker1.DateTimePickerElement.GetCurrentBehavior() as RadDateTimePickerCalendar; calendarBehavior.Calendar.ElementRender += Calendar_ElementRender; } private void Calendar_ElementRender(object sender, RenderElementEventArgs e) { if (e.Day.Date > this.radDateTimePicker1.MaxDate.Date || e.Day.Date < this.radDateTimePicker1.MinDate.Date) { e.Element.Enabled = false; } else { e.Element.Enabled = true; } }
The value set to the last spin editor is overridden with its previous value. How to reproduce: check the attached videos Workaround: public partial class Form1 : Form { public Form1() { InitializeComponent(); this.radColorBox1.ValueChanging += radColorBox1_ValueChanging; ((RadForm)this.radColorBox1.ColorBoxElement.ColorDialog.ColorDialogForm).FormClosing += Form1_FormClosing; } bool cancelValueChange; Telerik.WinControls.UI.RadColorPicker.ProfessionalColors professionalColors; private void Form1_FormClosing(object sender, FormClosingEventArgs e) { Control colorSelector = this.radColorBox1.ColorBoxElement.ColorDialog.ColorDialogForm.RadColorSelector; RadPageView pageView = colorSelector.Controls[3] as RadPageView; if (pageView.SelectedPage.TabIndex == 3) { cancelValueChange = true; professionalColors = pageView.Pages[3].Controls[0] as Telerik.WinControls.UI.RadColorPicker.ProfessionalColors; } else { professionalColors = null; } } private void radColorBox1_ValueChanging(object sender, Telerik.WinControls.UI.ValueChangingEventArgs e) { if (cancelValueChange && professionalColors != null) { e.Cancel = true; RadSpinEditor alphaSpinEditor = professionalColors.Controls[12] as RadSpinEditor; RadSpinEditor redSpinEditor = professionalColors.Controls[15] as RadSpinEditor; RadSpinEditor greenSpinEditor = professionalColors.Controls[11] as RadSpinEditor; RadSpinEditor blueSpinEditor = professionalColors.Controls[7] as RadSpinEditor; cancelValueChange = false; this.radColorBox1.Value = Color.FromArgb((int)alphaSpinEditor.Value, (int)redSpinEditor.Value, (int)greenSpinEditor.Value, (int)blueSpinEditor.Value); } } }
To reproduce: Add the following line of code: [C#] this.radSpellChecker1.SpellCheckMode = Telerik.WinControls.UI.SpellCheckMode.AllAtOnce; [VB.NET] Me.RadSpellChecker1.SpellCheckMode = Telerik.WinControls.UI.SpellCheckMode.AllAtOnce When you spell check RadRichTextBox and the spell check form is opened click the change button. You will notice that the word will not changed in the original RadRichTextBox. this.radSpellChecker1.RegisterControlSpellChecker(typeof(RadRichTextBox), new MyRichTextBoxSpellChecker()); this.radSpellChecker1.SpellCheckMode = SpellCheckMode.AllAtOnce; Workaround: class MyRichTextBoxSpellChecker : RadRichTextBoxSpellChecker { public override Telerik.WinControls.RichTextBox.Model.RadDocument GetContentAsDocument() { return (this.CurrentControl as RadRichTextBox).Document; } }
To reproduce: - Add RichTextBox and type two words each on a separate line. - Perform spell check using the following code: radSpellChecker1.SpellCheckMode = SpellCheckMode.WordByWord; radSpellChecker1.Check(richTextBox1); The result is shown on the attached image.
Steps to reproduce. 1. Add a RadTextBoxControl and a button to a form 2. On the button click set a large text (the text from a 150KB text file) to the Text property of the text box. You will see that the control takes a lot of time to complete the operation.