2013-11-27 1 views
1

После привязки объекта к Richtextbox с помощью bindingsource, если я нахожу что-либо внутри курсора текстового поля, он переместится в начало. Может кто-то, пожалуйста, помогите мне.Проблема с привязкой Richtextbox при вводе

Я связывание ниже

this.txtDescription.DataBindings.Add("Text", bindingWard, "Description", 
         false, DataSourceUpdateMode.OnPropertyChanged); 
+0

есть ли какие-либо ** связанные события **? просьба указать о них, если таковые имеются. –

+0

Нет связанных событий. Его простая форма, в которой Richtextbox привязан к объекту с использованием bindingsource. И после ввода каждый раз, когда я набираю курсор, возвращается в позицию 0 – techknackblogs

ответ

1

Попробуйте изменить DataSourceUpdateMode к OnValidation:

this.txtDescription.DataBindings.Add("Text", bindingWard, "Description", 
        false, DataSourceUpdateMode.OnValidation); 

Если вы хотите сохранить OnPropertyChanged настройки, вы можете попробовать изменяя ControlUpdateMode, который является способом создания односторонней привязки:

Binding b = new Binding("Text", test, "Description", 
         false, DataSourceUpdateMode.OnPropertyChanged); 
b.ControlUpdateMode = ControlUpdateMode.Never; 
this.txtDescription.DataBindings.Add(b); 
+0

Он работает, но вопрос в том, почему он не работает для OnPropertyChanged. Для текстового поля его работа отлично подходит только для Richtextbox, что дает ему проблему. Просто хочу знать суть этой проблемы. – techknackblogs

+0

@techknackblogs RTF - это другой зверь. Изменение текста переписывает коды форматированного текста в элементе управления. Он неизбежно теряет место, где находился курсор, и сбрасывает его до начала. – LarsTech

+0

@techknackblogs В качестве альтернативы, поскольку вы просто привязываетесь к тексту, похоже, вам не важно форматирование форматированного текста. В этом случае рассмотрите возможность использования только текстового поля с атрибутом Multiline, равным true. – LarsTech

0

попробовать richTextBox1.ScrollToEnd(); после связывания

+0

Не удается найти scrolltoend. Также возникает проблема, когда я начинаю вводить текст внутри текстового поля. После ввода чего-либо курсора вернется в позицию 0. Поэтому я действительно сомневаюсь, что ScrollTo .. поможет – techknackblogs

0

Установка formattingEnabled=true решила проблему для меня.