Completed
Last Updated: 11 Feb 2014 16:23 by Svetlin
The RadAutoCompleteBox does not show its dropdown when single item is suggested.
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: 11 Feb 2014 16:12 by ADMIN
To reproduce:
RadColorDialog dialog = new RadColorDialog();
dialog.ColorDialogForm.ColorChanged

Workaround:
((RadColorSelector)dialog.ColorDialogForm.RadColorSelector).OkButtonClicked += Form1_OkButtonClicked;
//or
((RadColorSelector)dialog.ColorDialogForm.RadColorSelector).ColorChanged+= ColorDialogForm_ColorChanged;
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: 11 Feb 2014 11:18 by ADMIN
FIX. RadDateTimePicker - when the NullDate is set for example to DateTime.Now and you clear the value with SetToNullText, then you can not type the value for the current month.
Completed
Last Updated: 12 Nov 2013 08:54 by ADMIN
To reproduce:
-add RadGridView and use the following code:

public static readonly DateTime MIN_DATE = new DateTime(1900, 1, 1);
public static readonly DateTime MAX_DATE = new DateTime(2079, 1, 1);

public Form1()
{
    InitializeComponent();

    var colDate = new Telerik.WinControls.UI.GridViewDateTimeColumn();
    colDate.DataType = typeof(System.DateTime);
    colDate.HeaderText = "Date";
    colDate.Name = "colDate";
    colDate.FormatString = "{0:d}";
    colDate.Width = 85;

    radGridView1.Columns.Add(colDate);

    radGridView1.CellEditorInitialized += radGridView1_CellEditorInitialized;
}

private void radGridView1_CellEditorInitialized(object sender, Telerik.WinControls.UI.GridViewCellEventArgs e)
{
    var editor = this.radGridView1.ActiveEditor as RadDateTimeEditor;
    if (editor == null)
    {
        return;
    }
    editor.MinValue = MIN_DATE;
    editor.MaxValue = MAX_DATE;

    DateTime date = DateTime.Now;
    RadDateTimeEditorElement editorElement = (RadDateTimeEditorElement)editor.EditorElement;
    editorElement.Format = DateTimePickerFormat.Custom;
    editorElement.CustomFormat = "MM/dd/yyyy";
    editorElement.Value = date;
    e.Row.Cells[e.ColumnIndex].Value = editorElement.Value;
}

As a result when the user tries to enter a valid year between MinValue and MaxValue it is not possible.

Workaround: use CellValidating event:

radGridView1.CellValidating += radGridView1_CellValidating;

 private void radGridView1_CellValidating(object sender, CellValidatingEventArgs e)
 {
     RadGridView grid = sender as RadGridView;
     if (grid.CurrentColumn is GridViewDateTimeColumn)
     {
         DateTime currentDate = (DateTime)e.Value;
         if (currentDate <= MAX_DATE && currentDate >= MIN_DATE)
         {
             e.Cancel = false;
         }
         else
         {
             e.Cancel = true;
         }
     }
 }
Completed
Last Updated: 06 Nov 2013 06:13 by ADMIN
To reproduce:
  public Form1()
        {
            InitializeComponent();

            this.radMaskedEditBox1.Mask = "00,000-000";
            this.radMaskedEditBox1.MaskType = Telerik.WinControls.UI.MaskType.Standard;
        }

        private void radButton1_Click(object sender, EventArgs e)
        {
            radMaskedEditBox1.Value = null;
        }

Workaround:
        private void radButton1_Click(object sender, EventArgs e)
        {
            radMaskedEditBox1.Value = null;
            radMaskedEditBox1.Text = "";
        }
Completed
Last Updated: 23 Oct 2013 06:13 by ADMIN
To reproduce:
Add a RadSpellChecker and a RichTextBox, set the spell checker to check the RichTextBox on some button click. Set the main form's TopMost property to true. Start the form, you will notice that sometimes the dialog for spellchecking and the complete messagebox show behind the main form.

Workaround:
public class MyRadSpellChecker : RadSpellChecker
{
    private FormSettings formSettingsForCurrentSpellCheckIteration = new FormSettings();

    public MyRadSpellChecker()
        {
        }

    protected override void CheckAllAtOnce(IControlSpellChecker spellChecker)
    {
        Form spellCheckerParentForm = this.GetSpellCheckerParentForm(spellChecker);
        RadDocument editingElementContentToRadDocument = spellChecker.GetContentAsDocument();
        editingElementContentToRadDocument.Measure(RadDocument.MAX_DOCUMENT_SIZE);

        IControlSpellChecker richTextBoxSpellChecker = this.GetControlSpellChecker(typeof(RadRichTextBox));

        SpellCheckAllAtOnceForm checkAllAtOnceWindow = new SpellCheckAllAtOnceForm(editingElementContentToRadDocument,
                                                                                   richTextBoxSpellChecker,
                                                                                   spellChecker);

        if (!checkAllAtOnceWindow.HasErrors)
        {
            this.ShowSpellCheckingCompleteDialog(spellCheckerParentForm);
            return;
        }

        this.CopyFormSettings(this.FormSettings, checkAllAtOnceWindow);

        SpellingFormShowingEventArgs args = new SpellingFormShowingEventArgs(checkAllAtOnceWindow, spellChecker);
        this.OnSpellingFormShowing(args);

        if (args.Cancel)
        {
            return;
        }

        Form form = args.SpellingForm;
        form.ShowDialog(spellCheckerParentForm);
    }

    private void CopyFormSettings(FormSettings from, RadForm to)
        {
            to.Location = from.Location;
            to.StartPosition = from.StartPosition;
            ThemeResolutionService.ApplyThemeToControlTree(to, from.ThemeName);
        }

    private void ShowSpellCheckingCompleteDialog(Form parentForm = null)
        {
            if (this.EnableCompleteMessageBox)
            {
                string themeName = RadMessageBox.ThemeName;
                RadMessageBox.ThemeName = this.ThemeName;
                string title = RadSpellCheckerLocalizationProvider.CurrentProvider.GetLocalizedString(RadSpellCheckerStringId.Title);
                string complete = RadSpellCheckerLocalizationProvider.CurrentProvider.GetLocalizedString(RadSpellCheckerStringId.Complete);
                RadMessageBox.Show(parentForm, complete, title, MessageBoxButtons.OK);
                RadMessageBox.ThemeName = themeName;
            }
        }

    protected override void CheckWordByWord(IControlSpellChecker spellChecker)
    {
        this.CopyWindowSettings(this.FormSettings, this.formSettingsForCurrentSpellCheckIteration);
        DialogResult result = DialogResult.None;

        do
        {
            result = this.ShowWindowForNextError(spellChecker);
        }
        while (result != DialogResult.None && result == DialogResult.OK);
    }

    private void CopyWindowSettings(FormSettings from, FormSettings to)
    {
        to.Location = from.Location;
        to.StartPosition = from.StartPosition;
        to.ThemeName = from.ThemeName;
    }

    private DialogResult ShowWindowForNextError(IControlSpellChecker spellChecker)
    {
        Form spellCheckerParentForm = this.GetSpellCheckerParentForm(spellChecker);

        spellChecker.ResetFields();
        IWordInfo incorrectWordInfo = spellChecker.MoveToNextError();

        if (incorrectWordInfo == null)
        {
            this.ShowSpellCheckingCompleteDialog(spellCheckerParentForm);
            return DialogResult.None;
        }

        RadForm checkWordByWordWindow = new SpellCheckWordByWordForm(incorrectWordInfo.Word, spellChecker);

        this.CopyFormSettings(this.formSettingsForCurrentSpellCheckIteration, checkWordByWordWindow);

        SpellingFormShowingEventArgs args = new SpellingFormShowingEventArgs(checkWordByWordWindow, spellChecker);
        this.OnSpellingFormShowing(args);

        if (args.Cancel)
        {
            return DialogResult.None;
        }

        checkWordByWordWindow = args.SpellingForm;
        spellChecker.CurrentControl.Focus();
        return checkWordByWordWindow.ShowDialog(spellCheckerParentForm);
    }

    private Form GetSpellCheckerParentForm(IControlSpellChecker spellChecker)
    {
        if (spellChecker != null && spellChecker.CurrentControl != null)
        {
            return spellChecker.CurrentControl.FindForm();
        }

        return null;       
    }
}
Completed
Last Updated: 22 Oct 2013 05:47 by ADMIN
ADMIN
Created by: Georgi I. Georgiev
Comments: 0
Category: Editors
Type: Bug Report
1
To reproduce: Add a radspellchecker and let it check a radrichtextbox. Check an incorrect word and click ignore all. You will see that the dialog shows up again.

Workaround:
public class MySpellCheckWordByWordForm : SpellCheckWordByWordForm
    {
        
Completed
Last Updated: 04 Oct 2013 05:32 by ADMIN
ADMIN
Created by: Dimitar
Comments: 0
Category: Editors
Type: Feature Request
2
RadMaskedEditBox - the ability to access the ErrorProvider in order to change the image or other properties.
Completed
Last Updated: 19 Sep 2013 10:31 by ADMIN
To reproduce:
-add RadTimePicker and set its value to null.
-click the arrow to open the pop up and notice that clock header used the default general DateTime pattern to display the text (e.g. 9/18/2013 12:00:00 AM), instead of using the short time pattern displayed (e.g. 12:00 AM)

Workaround:
this.radTimePicker1.Value = null;
this.radTimePicker1.TimePickerElement.PopupOpened+=TimePickerElement_PopupOpened;

private void TimePickerElement_PopupOpened(object sender, EventArgs e)
{
   this.radTimePicker1.TimePickerElement.PopupContentElement.ClockHeaderElement.Text =
        DateTime.Now.ToString(this.radTimePicker1.TimePickerElement.Format, this.radTimePicker1.TimePickerElement.Culture);
}
Completed
Last Updated: 30 Aug 2013 10:10 by ADMIN
ADMIN
Created by: Georgi I. Georgiev
Comments: 0
Category: Editors
Type: Bug Report
0
To reproduce:
Create two forms - form 1 has a button which creates a new  form 2
Form 2 has a button and a RichTextBox. The button should create a spellchecker. Write something into the richtextbox and  click the button. Close the spellchecking form and form 2. Repeat a few times, memory usage should increase.
Completed
Last Updated: 27 Aug 2013 05:19 by ADMIN
To reproduce - add some text to the control and its IsReadOnly to true. Right click and observe the context menu

Workaround:
        radTextBoxControl1.ContextMenuOpening += radTextBoxControl1_ContextMenuOpening;
        

        void radTextBoxControl1_ContextMenuOpening(object sender, TreeBoxContextMenuOpeningEventArgs e)
        {
            e.ContextMenu.DropDownOpened -= ContextMenu_DropDownOpened;
            e.ContextMenu.DropDownOpened += ContextMenu_DropDownOpened;
          
        }

        void ContextMenu_DropDownOpened(object sender, EventArgs e)
        {
            TextBoxControlDefaultContextMenu contextMenu = (TextBoxControlDefaultContextMenu)sender;

            if (radTextBoxControl1.IsReadOnly)
            {
                foreach (RadMenuItemBase item in contextMenu.Items)
                {
                    if (item.Text == "Cu&t" ||
                        item.Text == "&Copy" ||
                        item.Text == "&Paste" ||
                        item.Text == "&Delete")
                    {
                        item.Enabled = false;
                    }
                }
            }
        }
Completed
Last Updated: 13 Aug 2013 09:11 by ADMIN
To reproduce:
Add RadAutoCompleteTextBox, add a AutoCompleteDataSource, complete a word, click the close button of the word, try to type.
Workaround:
void RadForm1_Load(object sender, EventArgs e)
{
    RemoveFocus();
}

void radAutoCompleteBox1_TextChanged(object sender, EventArgs e)
{
    RemoveFocus();
}

private void RemoveFocus()
{
    foreach (var item in this.radAutoCompleteBox1.TextBoxElement.ViewElement.Children)
    {
        foreach (var btn in item.Children)
        {
            var radButtonElement = btn as RadButtonElement;
            if (radButtonElement != null)
            {
                radButtonElement.CanFocus = false;
            }
        }
    }
}
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: 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: 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: 03 Jul 2013 13:52 by ADMIN
ADMIN
Created by: Telerik Admin
Comments: 0
Category: Editors
Type: Bug Report
4
Put couple text boxes on a form in design time and you will have to press Shift+TAB twice to get the focus to the previously focused text box.
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.
Completed
Last Updated: 07 May 2013 02:27 by ADMIN
To reproduce: add a token to the control and attempt adding the same token with this code in the CreateTextBlock event handler:

        void radAutoCompleteBox1_CreateTextBlock(object sender, CreateTextBlockEventArgs e)
        {
            if (e.TextBlock is TokenizedTextBlockElement)
            {
                foreach (RadListDataItem item in radAutoCompleteBox1.AutoCompleteItems)
                {
                    if (item.Text.ToLower() == e.Text.ToLower())
                    {
                        e.TextBlock = new TokenizedTextBlockElement("pepo");
                        break; // TODO: might not be correct. Was : Exit For
                    }
                }
            }
        }

Workaround:

        void radAutoCompleteBox1_CreateTextBlock(object sender, CreateTextBlockEventArgs e)
        {
            if (e.TextBlock is TokenizedTextBlockElement)
            {
                foreach (RadListDataItem item in radAutoCompleteBox1.AutoCompleteItems)
                {
                    if (item.Text.ToLower() == e.Text.ToLower())
                    {
                        TokenizedTextBlockElement element = new TokenizedTextBlockElement();
                        element.ContentElement.Text = item.Text;
                        e.TextBlock = element;
                    }
                }
            }
        }