To reproduce: Add a RadGridView with a ComboBoxColumn, add a datasource, use the following code on CellEditorInitializedEvent: void GridView_CellEditorInitialized(object sender, GridViewCellEventArgs e) { GridViewComboBoxColumn column = e.Column as GridViewComboBoxColumn; if (column != null) { RadDropDownListEditor editor = e.ActiveEditor as RadDropDownListEditor; if (editor != null) { RadDropDownListEditorElement editorElement = editor.EditorElement as RadDropDownListEditorElement; if (editorElement != null) { editorElement.AutoCompleteMode = AutoCompleteMode.SuggestAppend; } } } } Run the project, select a value from one of the dropdowns, start editing, press backspace, press the key which corresponds to the deleted character, for example if the last character was '2', press the key '2'. You will notice that the key will be ignored. Workaround: void GridView_CellEditorInitialized(object sender, GridViewCellEventArgs e) { GridViewComboBoxColumn column = e.Column as GridViewComboBoxColumn; if (column != null) { RadDropDownListEditor editor = e.ActiveEditor as RadDropDownListEditor; if (editor != null) { RadDropDownListEditorElement editorElement = editor.EditorElement as RadDropDownListEditorElement; editorElement.TextBox.KeyPress -= TextBox_KeyPress; editorElement.TextBox.KeyPress += TextBox_KeyPress; if (editorElement != null) { editorElement.AutoCompleteMode = AutoCompleteMode.SuggestAppend; } } } } private MethodInfo baseMethod = null; void TextBox_KeyPress(object sender, KeyPressEventArgs e) { if (char.IsLetterOrDigit(e.KeyChar)) { RadDropDownListEditorElement editorElement = ((this.GridView.ActiveEditor as RadDropDownListEditor).EditorElement as RadDropDownListEditorElement); MethodInfo method = baseMethod == null ? baseMethod = typeof(AutoCompleteAppendHelper).GetMethod("SetEditableElementText", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance) : baseMethod; InvokeNotOverride(method, editorElement.AutoCompleteAppend, editorElement.AutoCompleteAppend.FindShortestString(editorElement.Text + e.KeyChar)); editorElement.TextBox.TextBoxItem.TextBoxControl.SelectionStart = editorElement.Text.Length; } } public object InvokeNotOverride(MethodInfo methodInfo, object targetObject, params object[] arguments) { var parameters = methodInfo.GetParameters(); if (parameters.Length == 0) { if (arguments != null && arguments.Length != 0) throw new Exception("Arguments cont doesn't match"); } else if (parameters.Length != arguments.Length) { throw new Exception("Arguments cont doesn't match"); } Type returnType = null; if (methodInfo.ReturnType != typeof(void)) { returnType = methodInfo.ReturnType; } var type = targetObject.GetType(); var dynamicMethod = new DynamicMethod("", returnType, new Type[] { type, typeof(Object) }, type); var iLGenerator = dynamicMethod.GetILGenerator(); iLGenerator.Emit(OpCodes.Ldarg_0); for (var i = 0; i < parameters.Length; i++) { var parameter = parameters[i]; iLGenerator.Emit(OpCodes.Ldarg_1); iLGenerator.Emit(OpCodes.Ldc_I4_S, i); iLGenerator.Emit(OpCodes.Ldelem_Ref); var parameterType = parameter.ParameterType; if (parameterType.IsPrimitive) { iLGenerator.Emit(OpCodes.Unbox_Any, parameterType); } else { iLGenerator.Emit(OpCodes.Castclass, parameterType); } } iLGenerator.Emit(OpCodes.Call, methodInfo); iLGenerator.Emit(OpCodes.Ret); return dynamicMethod.Invoke(null, new object[] { targetObject, arguments }); }