2011-01-25 2 views
2

У меня есть приложение winform с двумя текстовыми полями. Текстовые поля являются многострочными и имеют 5 строк.C# winforms: переместить текст из одного текстового поля в другое

Когда пользователь вводит более 5 строк текста в первом текстовом поле, я хочу, чтобы текст продолжался во втором текстовом поле. И если он/она удаляет текст из первого текстового поля, я хочу, чтобы текст возвращался со второго на первый ...

Я попытался решить это в своем коде, проверив, сколько строк имеет первое текстовое поле и переместил текст между двумя текстовыми полями. Но он не работает так хорошо, поэтому я задаюсь вопросом, есть ли у кого-то лучшее решение?

+3

Вы можете поделиться этим кодом? Что не получилось? – btlog

+3

- это два текстовых поля непосредственно выше/ниже друг друга? Зачем делиться на две части. Я был бы обеспокоен, если бы материал переместился из моего текстового поля где-то в другом месте, если бы я печатал. – DRapp

+0

У меня сейчас нет доступа к коду ... DRapp: ну да .. или они рядом друг с другом. Лучшим решением было бы, если бы у вас было многоколоночное текстовое поле ... – Zeno

ответ

1

Вы можете выполнить это, зарегистрировавшись для событий TextChanged элементов управления TextBox. Затем в обработчике событий вручную проверьте свойство Text и установите фокус на соответствующий элемент управления. Однако то, что вы описываете, похоже на то, что может привести к непоследовательному опыту пользователя.

С точки зрения UX я бы предложил изменить подход. Прежде всего, вам действительно нужно разделить текст в пользовательском интерфейсе или разделить его на бизнес-уровне? Если вам нужно, чтобы он был разделен в пользовательском интерфейсе, вы могли бы иметь один текстовый блок, который позволяет пользователю вводить полный текст, а ниже он имеет 2 текстовых поля только для чтения, которые отображают 2 разделенных сегмента по мере их ввода (вы также должны использовать TextChanged, чтобы сделать это по мере их ввода).

Надеюсь, это поможет.

+0

ну да, мне удалось убедить клиента и на самом деле получилось всего одно текстовое поле, где пользователь мог писать текст. И затем 2-3 текстовых поля только для чтения, которые отображали текст. – Zeno

0

Вы пытались проверить видимые символы в текстовом поле? или длину символа текстового поля?