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: 05 Jun 2014 07:07 by ADMIN
ADMIN
Created by: Nikolay
Comments: 0
Category: Editors
Type: Feature Request
2
There should be a TextAlign property at RadMaskedEditBox contorl level
Completed
Last Updated: 16 Jun 2014 11:41 by Jesse Dyck
RadMaskedEditBox/RadDateTimePicker/RadTimePicker does not support milliseconds editing.
Completed
Last Updated: 31 Jul 2014 08:11 by ADMIN
IMPROVE. RadSpellChecker - add ability to modify the €œThe spelling check is completed€ text in the message box.
Completed
Last Updated: 10 Feb 2020 14:27 by ADMIN
Release R1 2020 SP1
The new functionality should prevent duplicates to be added as tokens in the editor. An already selected item should not be visible in the popup as well. 

The attached 1148813-AutocompleteDuplicates.zip project features a possible custom solution. 
Completed
Last Updated: 13 Oct 2015 12:28 by ADMIN
Completed
Last Updated: 09 Feb 2017 10:59 by ADMIN
Workaround: use simple data binding with the editor and its Text property

this.radCalculatorDropDown1.CalculatorElement.EditorContentElement.TextBoxItem.DataBindings.Add("Text", testObject, "TestValue", false, DataSourceUpdateMode.OnPropertyChanged);
Completed
Last Updated: 22 Jan 2015 17:13 by ADMIN
ADMIN
Created by: Stefan
Comments: 0
Category: Editors
Type: Feature Request
1

			
Completed
Last Updated: 13 Jun 2018 08:23 by Dimitar
https://msdn.microsoft.com/en-us/library/system.windows.forms.maskedtextbox.maskcompleted(v=vs.110).aspx
Completed
Last Updated: 25 Mar 2013 04:57 by ADMIN
Drop RadTextBox on the form - there is a default text which equals to the Name of the control.
Completed
Last Updated: 03 Dec 2014 12:04 by Svetlin
Created by: Svetlin
Comments: 0
Category: Editors
Type: Feature Request
1
Add IME support to RadTextBoxControl and RadAutoCompleteBox.
Completed
Last Updated: 10 Jun 2014 10:39 by Svetlin
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;
            }
        }
Completed
Last Updated: 23 Jun 2014 09:57 by ADMIN
Completed
Last Updated: 31 Aug 2011 09:53 by ADMIN
ADD. RadDateTimePicker - add ability to determine the increment/decrement step when Format = Time
Completed
Last Updated: 20 Feb 2014 15:25 by Adam P
You guys expose most of the properties from the "HostedControl" on your custom controls.  One that seems to be missing, and requires an unintuitive line of code is the "UseSystemPasswordChar" boolean property from the TextBox.  I think it makes a lot of sense to expose this.

See: http://www.telerik.com/forums/usesystempasswordchar-property-for-radtextbox
Completed
Last Updated: 05 Jun 2014 12:20 by ADMIN
For example: users should be able to enter date like this 31/02/2013 and when control lost the focus the date should convert to 28/02/2013

Resolution:
This behavior could be achieved with the new FreeFormDateTimeProvider. Whit this provider user is not restricted from any mask and could enter the date in desire format. This provider is integrated in RadMakedEditBox so it can be used in RadDateTimePicker and RadTimePicker. To change default provider of RadDateTimePicker you should change the mask type of embedded RadMaskEditBox into RadDateTimePicker. For Example:

 this.radDateTimePicker1.DateTimePickerElement.TextBoxElement.MaskType = MaskType.FreeFormDateTime; 
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: 05 Jun 2014 07:07 by ADMIN
ADMIN
Created by: Nikolay
Comments: 0
Category: Editors
Type: Feature Request
1
RadMaskedEditBox should be able to handle dynamic masks. The core of this feature is the ability to have a value for the number of allowed characters on one hand and a value for the number of maximum characters on the other hand.
Completed
Last Updated: 05 Jun 2014 07:07 by ADMIN
ADMIN
Created by: Nikolay
Comments: 0
Category: Editors
Type: Feature Request
1
RadMarkupDialog should provide the possibility to be localized by a localization providers.