Completed
Last Updated: 23 Nov 2011 12:34 by ADMIN
ADMIN
Created by: Jack
Comments: 0
Category: Editors
Type: Bug Report
0
1. Create a new project
2. Add a button and on this button start a new form containing RadMarkupEditor
3. Open and close this form several times
Completed
Last Updated: 11 Jul 2013 13:17 by ADMIN
This behavior comes from the nested MaskedEditBox. RadDateTimePicker behaves the same way - this is core logic and should be the same.
Completed
Last Updated: 21 Jun 2012 03:44 by Jesse Dyck
Selection in RadDateTimePicker when the culture is ar-SA is not correct. Further, changing the selected date using the arrow keys does not set the right value.
Completed
Last Updated: 17 Aug 2012 05:26 by ADMIN
SpellCheckAllAtOnce form should fill the "Change To:" field with the selected word in the suggestions box
Completed
Last Updated: 09 Jun 2014 07:21 by ADMIN
ADMIN
Created by: Martin Vasilev
Comments: 0
Category: Editors
Type: Bug Report
0
The RadDateTimePicker editor does not allow to edit milliseconds if appropriate format string is applied.
Unplanned
Last Updated: 30 Mar 2016 08:22 by ADMIN
Html formatting does not work as expected in design-time.
Completed
Last Updated: 15 May 2014 10:31 by ADMIN
ADMIN
Created by: Georgi I. Georgiev
Comments: 0
Category: Editors
Type: Bug Report
0
To reproduce:
Add a RadTextBoxControl to a form, insert a text using the following line:
this.radTextBoxControl1.AppendText(string.Format("{0} Foo {0} bar {0}", Environment.NewLine));

You will notice that the newlines are not taken into consideration

Workaround:
Use the following classes - 

public class MyTextBoxControl : RadTextBoxControl
{
    protected override RadTextBoxControlElement CreateTextBoxElement()
    {
        return new MyTextBoxControlElement();
    }
}

public class MyTextBoxControlElement : RadTextBoxControlElement
{
    protected override TextBoxViewElement CreateViewElement()
    {
         return new MyTextBoxViewElement();
    }

    protected override Type ThemeEffectiveType
    {
        get
        {
            return typeof(RadTextBoxControlElement);
        }
    }
}

public class MyTextBoxViewElement : TextBoxViewElement
{
    protected override void ReplaceTextBlock(ITextBlock targetBlock, int startCharPosition, int endCharPosition, string text)
    {
        if (string.IsNullOrEmpty(text) && startCharPosition == 0 && endCharPosition == targetBlock.Length)
        {
            this.Children.Remove(targetBlock as RadElement);
            return;
        }

        string headText = targetBlock.Text.Substring(0, startCharPosition);
        string tailText = targetBlock.Text.Substring(endCharPosition);
        targetBlock.Text = headText;

        if (TextBoxViewElement.IsSpecialText(text) || this.ContainsNewLine(text))
        {
            int index = string.IsNullOrEmpty(headText) ? targetBlock.Index : targetBlock.Index + 1;
            index = this.InsertTextBlocks(index, text, TextBlockElementType);

            if (string.IsNullOrEmpty(headText))
            {
                targetBlock.Index = index + 1;
            }

            if (!string.IsNullOrEmpty(headText) && !string.IsNullOrEmpty(tailText))
            {
                index = this.InsertTextBlocks(index + 1, tailText, TextBlockElementType);
                return;
            }
        }
        else
        {
            targetBlock.Text += text;
        }

        targetBlock.Text += tailText;
    }

    public bool ContainsNewLine(string text)
    {
        string[] words = text.Split(new char[] { ' ', ',', '.', '!', '?' }, StringSplitOptions.RemoveEmptyEntries);
        for (int i = 0; i < words.Length; i++)
        {
            string word = words[i];
            if (!string.IsNullOrEmpty(word) && word == Environment.NewLine)
            {
                return true;
            }
        }

        return false;
    }
}
Completed
Last Updated: 11 Feb 2014 13:59 by ADMIN
To reproduce:
Add a RadSpinEditor and set its Hexadecimal property to true. Set its maximum to 0xFFFFFFFF(4294967295). Try to enter value larger than 7FFFFFFF(Int.MaxValue). You will notice that the value cannot be set.

Workaround:
public class MySpinEditor : RadSpinEditor
        {
            public new MySpinElement SpinElement
            {
                get
                {
                    return base.SpinElement as MySpinElement;
                }
                private set
                {
                    typeof(RadSpinEditor).GetField("spinElement", BindingFlags.Instance |  BindingFlags.NonPublic).SetValue(this, value);
                }
            }

            protected override void CreateChildItems(RadElement parent)
            {
                this.SpinElement = new MySpinElement();
                this.SpinElement.RightToLeft = this.RightToLeft == System.Windows.Forms.RightToLeft.Yes;
                this.RootElement.Children.Add(this.SpinElement);

                this.SpinElement.ValueChanging += SpinElement_ValueChanging;
                this.SpinElement.ValueChanged += SpinElement_ValueChanged;
                this.SpinElement.TextChanging += SpinElement_TextChanging;

                this.SpinElement.KeyDown += SpinElement_KeyDown;
                this.SpinElement.KeyPress += SpinElement_KeyPress;
                this.SpinElement.KeyUp += SpinElement_KeyUp;
            }

            void SpinElement_KeyUp(object sender, KeyEventArgs e)
            {
                this.CallBaseOnKeyUp(e);
            }

            void SpinElement_KeyPress(object sender, KeyPressEventArgs e)
            {
                this.CallBaseOnKeyPress(e);
            }

            void SpinElement_KeyDown(object sender, KeyEventArgs e)
            {
                this.CallBaseOnKeyDown(e);
            }

            void SpinElement_TextChanging(object sender, TextChangingEventArgs e)
            {
                this.OnTextChanged(e);
            }

            void SpinElement_ValueChanged(object sender, EventArgs e)
            {
                this.OnValueChanged(e);
            }

            void SpinElement_ValueChanging(object sender, ValueChangingEventArgs e)
            {
                this.OnValueChanging(e);
            }


        }

public class MySpinElement : RadSpinElement
{
    protected override decimal GetValueFromText()
    {
        try
        {
            if (!string.IsNullOrEmpty(this.Text) && ((this.Text.Length != 1) || (this.Text != "-")))
            {
                decimal resultValue = 0m;

                if (this.Hexadecimal)
                {
                    resultValue = this.Constrain(Convert.ToDecimal(Convert.ToInt64(this.Text, 16)));
                }
                else
                {
                    resultValue = this.Constrain(decimal.Parse(this.Text, CultureInfo.CurrentCulture));
                }

                return resultValue;
            }
            else
            {
                return this.internalValue;
            }
        }
        catch
        {
            return this.internalValue;
        }
    }

    protected override Type ThemeEffectiveType
    {
        get
        {
            return typeof(RadSpinElement);
        }
    }
}
Completed
Last Updated: 18 Mar 2014 10:39 by ADMIN
To reproduce: 
- Set the NullableValue property to null. 
- When you start the application there is no date in datetime picker but when the control loses the focus the date is automatically filled.

Workaround: 
- Set the NullDate to equals the Value: radDateTimePicker1.NullDate = radDateTimePicker1.Value; 
- Then you change the NullDate in the ValueChanged event: 
void radDateTimePicker1_ValueChanged(object sender, EventArgs e) { radDateTimePicker1.NullDate = new DateTime(1980, 1, 1); }
Completed
Last Updated: 06 Jun 2014 12:07 by ADMIN
Add the ability to gain focus and change the toggle state upon keypress.
Add the ability to show the calendar with a key combination like Alt + DownArrow.
Completed
Last Updated: 22 Feb 2016 14:57 by ADMIN
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++;
        }
    }
}
Completed
Last Updated: 11 Feb 2014 16:16 by ADMIN
ADMIN
Created by: Dimitar
Comments: 0
Category: Editors
Type: Bug Report
0
To reproduce:
-wire to the PreviewKeyDown event like this:
radMaskedEditBox1.PreviewKeyDown += radMaskedEditBox1_PreviewKeyDown

Workaround:
-wire to the TextBoxItem PreviewKeyDown:
radMaskedEditBox1.MaskedEditBoxElement.TextBoxItem.PreviewKeyDown += TextBoxItem_PreviewKeyDown;
Completed
Last Updated: 09 Jul 2013 02:18 by ADMIN
RadSpellCheckerLocalizationProvider - The word dictionary is misspelled in case RadSpellCheckerStringId.NotInDictionary. 

Workaround:
Create custom localization provider and override incorrect string.
Completed
Last Updated: 04 May 2016 11:14 by ADMIN
RadMaskedEditBox - has incorrect behavior when decimal separator is "D". You can set only one digit before separator.
Completed
Last Updated: 31 Jul 2013 06:28 by ADMIN
RadMaskEditBox - does not work correctly when the whole text is selected and user presses key "Enter". Control removes the last character.

Workaround:

Public Class Form1

    Dim text1 As String
    Dim text2 As String

    Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        If e.KeyData = Keys.Enter Then
            SendKeys.Send("{TAB}")
        End If

    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.RadMaskedEditBox1.MaskType = Telerik.WinControls.UI.MaskType.Standard
        Me.RadMaskedEditBox2.MaskType = Telerik.WinControls.UI.MaskType.Standard
        Me.RadMaskedEditBox1.Mask = "00/00/00"
        Me.RadMaskedEditBox1.Text = "__/__/__"
        Me.RadMaskedEditBox2.Mask = "00/00/00"
        Me.RadMaskedEditBox2.Text = "__/__/__"

    End Sub

    Private Sub RadMaskedEditBox1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadMaskedEditBox1.GotFocus
        RadMaskedEditBox1.SelectAll()
        text1 = Me.RadMaskedEditBox1.Text

    End Sub

    Private Sub RadMaskedEditBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadMaskedEditBox1.LostFocus
        Me.RadMaskedEditBox1.Text = text1
    End Sub

    Private Sub RadMaskedEditBox1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles RadMaskedEditBox1.KeyDown
        If e.KeyData = Keys.Enter Then
            text1 = Me.RadMaskedEditBox1.Text
        End If
    End Sub


    Private Sub RadMaskedEditBox2_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadMaskedEditBox2.GotFocus
        RadMaskedEditBox2.SelectAll()
        text2 = Me.RadMaskedEditBox2.Text
    End Sub

    Private Sub RadMaskedEditBox2_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadMaskedEditBox2.LostFocus
        Me.RadMaskedEditBox2.Text = text2
    End Sub

    Private Sub RadMaskedEditBox2_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles RadMaskedEditBox2.KeyDown
        If e.KeyData = Keys.Enter Then
            text2 = Me.RadMaskedEditBox2.Text
        End If
    End Sub

End Class
Completed
Last Updated: 15 Jan 2013 08:20 by ADMIN
IF you  canceling the textChanging event of the RadTextBox (e.Cancel = true)  the cursor back at the start of the text.

Work around:

1. Create custom text box element that inherited the RadTextBoxElement. For example:
public class MyTextBoxElement : RadTextBoxElement
{
    private bool isValueChanging = false;
    private int selectionStart = -1;
 
    public MyTextBoxElement()
    {
        this.TextBoxItem.HostedControl.TextChanged += new EventHandler(HostedControl_TextChanged);
    }
 
    protected override void OnTextChanging(Telerik.WinControls.TextChangingEventArgs e)
    {
        base.OnTextChanging(e);
 
        Regex regEx = new Regex(@"[\s]{1,}");
        if (regEx.IsMatch(e.NewValue))
        {
            isValueChanging = true;
            this.selectionStart = base.TextBoxItem.SelectionStart - 1;
        }
         
    }
 
    private void HostedControl_TextChanged(object sender, EventArgs e)
    {
        if (this.isValueChanging && selectionStart >= 0)
        {
            this.isValueChanging = false;
            this.TextBoxItem.SelectionStart = this.selectionStart;
        }
    }
 
    protected override Type ThemeEffectiveType
    {
        get
        {
            return typeof(RadTextBoxElement);
        }
    }
}

2. Create custom Text box that inherited the RadTextBox: For Example:
public class MyTextBox : RadTextBox
{
    private static readonly FieldInfo TextBoxElementFieldInfo = typeof(RadTextBox).GetField("textBoxElement", BindingFlags.NonPublic | BindingFlags.Instance);
 
    public MyTextBox()
    {
        this.ThemeClassName = typeof(RadTextBox).FullName;
    }
 
    protected RadTextBoxElement TextBox
    {
        get { return (RadTextBoxElement)TextBoxElementFieldInfo.GetValue(this); }
        set { TextBoxElementFieldInfo.SetValue(this, value); }
    }
 
    protected override void InitializeTextElement()
    {
        this.TextBox = new MyTextBoxElement();
        this.TextBox.StretchVertically = true;
        this.TextBox.ShowBorder = true;
    }
 
}

3. Use your custom Text box instead the default RadTextBox. 

4. Subscribe to text Changing event of the custom text box and add the following code snippet:

    Regex regEx = new Regex(@"[\s]{1,}");
    if (regEx.IsMatch(e.NewValue))
    {
        e.Cancel = true;
    }
Completed
Last Updated: 05 Nov 2012 01:37 by ADMIN
RadAutoCompleteBox - Items collection ordered by input, not alphabetically
Completed
Last Updated: 07 Oct 2014 08:53 by ADMIN
Current behavior:
With decimal places = 2
2.225 is round to 2.22
the proper behavior would be 2.225 to be round to 2.23
Completed
Last Updated: 27 Dec 2016 14:36 by ADMIN
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.
Completed
Last Updated: 09 May 2013 03:48 by ADMIN
Until Q3 2012 the position of the check box has been on the left hand side of the control. After Q3 the position of the check box is between the text box and the arrow button. The correct position is on the left hand side.