Unplanned
Last Updated: 15 Aug 2017 09:36 by ADMIN
Currently all spell checker dialogs are not accessible for customization.
Unplanned
Last Updated: 30 Mar 2016 13:09 by ADMIN
example:

Imports Telerik.WinControls.UI
Imports Telerik.WinControls.RichTextBox.Proofing
Imports System.IO
Imports System.Globalization

Public Class Form1

    Dim radTextBox1 As RadTextBox = New RadTextBox
    Dim radSpellChecker1 As RadSpellChecker = New RadSpellChecker

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
        radTextBox1.Parent = Me.Panel1
        radTextBox1.Multiline = True
        radTextBox1.Dock = DockStyle.Fill

        radSpellChecker1.SpellCheckMode = SpellCheckMode.WordByWord



        Dim textBoxControlSpellChecker As IControlSpellChecker = Me.radSpellChecker1.GetControlSpellChecker(GetType(RadTextBox))
        Dim documentSpellChecker As DocumentSpellChecker = TryCast(textBoxControlSpellChecker.SpellChecker, DocumentSpellChecker)
        Dim ms As New MemoryStream(My.Resources.sv_SE
                                   )
        Dim dictionary As New WordDictionary()
        dictionary.Load(ms)

        documentSpellChecker.AddDictionary(dictionary, CultureInfo.CurrentCulture)

        radSpellChecker1.SpellCheckMode = SpellCheckMode.AllAtOnce

    End Sub

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
     
        Me.radSpellChecker1.Check(Me.radTextBox1)
    End Sub
End Class
Unplanned
Last Updated: 15 Aug 2017 09:36 by ADMIN
ADMIN
Created by: Jack
Comments: 0
Category: Editors
Type: Feature Request
0
first digit entered 3 would display 0.03
second digit 5 entered would display 0.35
third digit 0 entered  would display 3.50
Completed
Last Updated: 05 Jun 2014 07:08 by Svetlin
The RadDateTimeEditor does not obey MaxDate and MinDate property when the value is changed by keyboard input.

Work around:

public class MyRadDateTimeEditor : RadDateTimeEditor
    {
        public MyRadDateTimeEditor()
        {
            RadDateTimeEditorElement element = this.EditorElement as RadDateTimeEditorElement;
            element.CurrentBehavior.TextBoxElement.ValueChanged += this.OnValueChanged;
        }

        private void OnValueChanged(object sender, System.EventArgs e)
        {
            RadMaskedEditBoxElement maskBox = sender as RadMaskedEditBoxElement;
            RadDateTimeEditorElement element = this.EditorElement as RadDateTimeEditorElement;

            DateTime result;

            if (maskBox.Value != null && DateTime.TryParse(maskBox.Value.ToString(), out result) && DateTime.Compare(result, element.MaxDate) > 0)
            {
                this.Value = element.MaxDate;
                maskBox.Value = element.MaxDate;
                return;
            }
        }
    }
Completed
Last Updated: 05 Jun 2014 07:07 by Jesse Dyck
Workaround: Users should use a N0 mask instead of G mask.
Completed
Last Updated: 05 Jun 2014 07:08 by ADMIN
The sender of the KeyPress event should be RadMaskedEditBox. Currently, it is RadMaskedEditBoxElement.
Completed
Last Updated: 25 Jan 2013 05:39 by ADMIN
1. Create a new application with RadMarkupDialog.
2. Use the ILMerge tool to merge all assemblies in one executable file.
3. Run that file. You will see that all images are missing.
Declined
Last Updated: 20 Feb 2014 14:52 by ADMIN
ADMIN
Created by: Jack
Comments: 0
Category: Editors
Type: Feature Request
3
Currently it is not possible to represent time as 24:00 in time picker control as it uses the .NET DateType type, which does not support "24:00" as valid time.
Completed
Last Updated: 05 Jun 2014 07:07 by ADMIN
RadTimePicker/RadTimePickerElement should display empty text or Null text if the Value property is set to null.

Workaround:
        Me.RadTimePicker1.NullText = "Please, enter a time!"
        Me.RadTimePicker1.Value = Nothing
        Me.RadTimePicker1.TimePickerElement.MaskedEditBox.TextBoxItem.Text = ""
Completed
Last Updated: 24 Jul 2014 05:40 by Jesse Dyck
If you set MaskType to Standard and Mask to  ">LLL_LLL_LLL"   and set the TextMaskFormat property to ExcludePromptAndLiterals, the result value property will be an empty string.
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: 13 Feb 2014 13:19 by Jesse Dyck
Created by: Svetlin
Comments: 1
Category: Editors
Type: Feature Request
11
Improve the RadTextBoxControl to allow different text alignment as Microsoft TextBox.
Completed
Last Updated: 23 Apr 2014 12:56 by ADMIN
[C#] [Export(typeof(IControlSpellChecker))] class MyTextBoxControlSpellChecker : ControlSpellCheckerBase { #region Constants private static readonly char[] WordPartSeparators = new char[] { '-', '–', '’', '\\', '/', '|', '=', '*', '(', ')' }; #endregion #region Fields private RadTextBoxControl textBox; #endregion #region Constructors public MyTextBoxControlSpellChecker() { } #endregion #region Properties public override Control CurrentControl { get { return this.textBox; } set { this.textBox = (RadTextBoxControl)value; } } #endregion #region Methods public override void ChangeCurrentWord(string suggestion) { int selectionStartPosition = textBox.SelectionStart; int selectionLength = textBox.SelectionLength; StringBuilder textBoxText = new StringBuilder(this.textBox.Text); textBoxText.Remove(selectionStartPosition, selectionLength); textBoxText.Insert(selectionStartPosition, suggestion); textBox.Text = textBoxText.ToString(); } public override IWordInfo MoveToNextError() { foreach (TextBoxWordInfo wordInfo in this.GetListOfWords()) { if (!this.CheckWordIsCorrect(wordInfo.Word)) { this.textBox.SelectionStart = wordInfo.StartPosition; this.textBox.SelectionLength = wordInfo.Word.Length; this.textBox.Focus(); return wordInfo; } } return null; } private IEnumerable<IWordInfo> GetListOfWords() { foreach (var wordItem in this.GetWordsFromText(this.textBox.Text)) { if (wordItem.Word == " " || wordItem.Word == Environment.NewLine || wordItem.Word == "\r" || wordItem.IsUppercase || wordItem.ContainsDigits) { continue; } int partIndex = 0; int startIndex = wordItem.IndexInText; foreach (string word in wordItem.Word.Split(WordPartSeparators, StringSplitOptions.None)) { string trimmedWord = TrimWordEnd(word); startIndex += TrimWordStart(ref trimmedWord); var wordInfo = new TextBoxWordInfo(trimmedWord, startIndex); if (trimmedWord.Length > 1) { yield return wordInfo; } startIndex += word.Length; startIndex++;//+1 for the separator partIndex++; } } } private IEnumerable<WordItem> GetWordsFromText(string text) { bool wordContainsDigits = false; List<WordItem> words = new List<WordItem>(text.Length / 7); StringBuilder currentWord = new StringBuilder(); bool onlyUpperLetters = true; int i = 0; for (i = 0; i < text.Length; i++) { if (text[i] == Environment.NewLine[0]) { if (currentWord.Length > 0) { words.Add(new WordItem(currentWord.ToString(), i - currentWord.Length, wordContainsDigits, onlyUpperLetters)); currentWord.Clear(); } words.Add(new WordItem(Environment.NewLine, i - currentWord.Length, wordContainsDigits, onlyUpperLetters)); if (i + 1 < text.Length && text[i + 1] == Environment.NewLine[1]) { i++; } wordContainsDigits = false; onlyUpperLetters = true; } else if (text[i] != '\'' && (text[i].ToString() == " " || text[i].ToString() == "\t" || Char.IsPunctuation(text[i]))) { if (currentWord.Length > 0) { words.Add(new WordItem(currentWord.ToString(), i - currentWord.Length, wordContainsDigits, onlyUpperLetters)); currentWord.Clear(); } words.Add(new WordItem(text[i].ToString(), i - currentWord.Length, wordContainsDigits, onlyUpperLetters)); wordContainsDigits = false; onlyUpperLetters = true; } else { char nextChar = text[i]; if (nextChar > '0' && nextChar < '9') { wordContainsDigits = true; } onlyUpperLetters = onlyUpperLetters && !char.IsLower(nextChar); currentWord.Append(text[i]); } } if (currentWord.Length > 0) { words.Add(new WordItem(currentWord.ToString(), i - currentWord.Length, wordContainsDigits, onlyUpperLetters)); } return words; } private int TrimWordStart(ref string word) { int index = 0; while (index < word.Length && !char.IsLetter(word[index])) { index++; } if (index == 0) { return index; } if (index < word.Length) { word = word.Substring(index); } else { word = string.Empty; } return index; } private string TrimWordEnd(string word) { int index = word.Length - 1; while (index >= 0 && !char.IsLetter(word[index])) { index--; } if (index >= 0) { return word.Substring(0, index + 1); } return string.Empty; } private bool CheckWordIsCorrect(string word) { //TODO: add built-in dictionary, to allow suggestions for these words if (string.CompareOrdinal(word, "Telerik") == 0 || string.CompareOrdinal(word, "Microsoft") == 0 || string.CompareOrdinal(word, "Silverlight") == 0 || string.CompareOrdinal(word, "RadRichTextBox") == 0 || string.CompareOrdinal(word, "RadControls") == 0) { return true; } if (this.IgnoredWords != null && this.IgnoredWords.ContainsWord(word)) { return true; } return base.SpellChecker.CheckWordIsCorrect(word); } public override RadDocument GetContentAsDocument() { TxtFormatProvider txtFormatProvider = new TxtFormatProvider(); RadDocument document = txtFormatProvider.Import(this.textBox.Text); return document; } public override void SetContentFromDocument(RadDocument document) { TxtFormatProvider txtFormatProvider = new TxtFormatProvider(); this.textBox.Text = txtFormatProvider.Export(document); } #endregion } internal struct WordItem { public string Word; public int IndexInText; public bool ContainsDigits; public bool IsUppercase; public WordItem(string word, int indexInText, bool containsDigits, bool isUppercase) { this.Word = word; this.IndexInText = indexInText; this.ContainsDigits = containsDigits; this.IsUppercase = isUppercase; } }
Completed
Last Updated: 27 Dec 2016 15:04 by ADMIN
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;
    }
}
Unplanned
Last Updated: 15 Aug 2017 09:36 by ADMIN
Currently there can only be one delimiter in the autocomplete box. Different users might be accustomed to using different delimiters, even one user using several delimiters.
Completed
Last Updated: 05 Jun 2014 11:37 by ADMIN
Step to reproduce:
1. Create Windows Forms project  with a form
2. Place RadDateTimePicker control on created form
3. Run application. It will display current date.
4. Click on dropdown arrow to open Calendar
5. Navigate to any month outside of the current date using navigation bar on top of the Calendar, but do NOT select any date
6. Close Calendar without selecting any date
7. Click on dropdown arrow to open Calendar again. Calendar will display current date, which is correct.
8. Now select any date in Calendar
9. Click on dropdown arrow to open Calendar again.
10. Navigate to any month outside of the selected date using navigation bar on top of the Calendar, but do NOT select any date
11. Close and reopen Calendar again. It will display month to which it was navigated in Step 10. Instead it suppose to display selected date
Completed
Last Updated: 18 Dec 2012 04:19 by ADMIN
ADMIN
Created by: Stefan
Comments: 0
Category: Editors
Type: Bug Report
1
To reproduce:
- set the Mask to P2
- set the MaskType to Numeric
- set the control value to 0.024

The the control displays "2.4" instead of "2.4 %"

WORKAROUND: 
  Private Sub RadMaskedEditBox1_ValueChanged(sender As Object, e As EventArgs)
        Dim control As RadMaskedEditBox = DirectCast(sender, RadMaskedEditBox)
        RemoveHandler control.ValueChanged, AddressOf RadMaskedEditBox1_ValueChanged
        control.MaskedEditBoxElement.TextBoxItem.Text = control.MaskedEditBoxElement.Provider.ToString(False, True)
        AddHandler control.ValueChanged, AddressOf RadMaskedEditBox1_ValueChanged
    End Sub
Completed
Last Updated: 18 Dec 2012 04:17 by ADMIN
ADMIN
Created by: Stefan
Comments: 0
Category: Editors
Type: Bug Report
4
To reproduce:
- set the Mask to N2
- set the MaskType to Numeric
- set the control value to 4.456789

The the control displays 4.456789 instead of 4.46

WORKAROUND: 
  Private Sub RadMaskedEditBox1_ValueChanged(sender As Object, e As EventArgs)
        Dim control As RadMaskedEditBox = DirectCast(sender, RadMaskedEditBox)
        RemoveHandler control.ValueChanged, AddressOf RadMaskedEditBox1_ValueChanged
        control.MaskedEditBoxElement.TextBoxItem.Text = control.MaskedEditBoxElement.Provider.ToString(False, True)
        AddHandler control.ValueChanged, AddressOf RadMaskedEditBox1_ValueChanged
    End Sub
Completed
Last Updated: 03 Jul 2014 16:35 by ADMIN
1. limitation of the time that can be chosen (e.g. 8 AM to 5 PM)
2. set the interval of increasing and decreasing the Minutes part to 30 instead of 1

NO WORKAROUND

Resolution: 
In release Q2 2014 we are introducing logic that allow to set time range by MinValue and MaxValue properties of RadTimePicker. To set the interval of increasing and decreasing of the minute’s part you can use the MinutesStep property of the MaskDateTimeProvider. 

For example for RadTimePicker:
(this.radTimePicker1.TimePickerElement.MaskedEditBox.Provider as MaskDateTimeProvider).MinutesStep = 30;

For example for RadDateTimePicker:
RadMaskedEditBoxElement mask = (RadMaskedEditBoxElement)this.radDateTimePicker1.DateTimePickerElement.TextBoxElement;
MaskDateTimeProvider provider = mask.Provider as MaskDateTimeProvider;
provider.MinutesStep = 30;
Completed
Last Updated: 05 Jun 2014 07:08 by Svetlin
Symbol characters are process as mnemonics in RadAutoCompleteBox when Italian keyboard is used and non-modifier (Alt or Ctrl) keys are pressed.