Предложения по дизайну интерфейса

#c# #winforms

#c# #winforms

Вопрос:

Мне нужно разработать своего рода систему шаблонов для текста: пользователь вводит фрагмент текста и вводит некоторые специальные маркеры, такие как (* *) внутри текста, которые сообщают программному обеспечению, что текст (**) нужно будет изменить на какой-то другой контент.

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

Я думал о том, чтобы отобразить весь текст (в текстовом поле) и заменить символы (**) текстовым полем, чтобы пользователь мог вводить текст. Есть ли способ сделать это? Что вы думаете об этом подходе? У вас есть идеи получше? Дело в том, что я хотел бы показать пользователю контекст, в котором происходит замена.

Спасибо.

Ответ №1:

Почему бы не отсканировать текст и сгенерировать текстовые поля «на лету»?

Ваш код будет отображать шаблонный текст, сканировать его, а затем, в зависимости от найденной шаблонной переменной, генерировать 1 текстовое поле. Вы перечисляете эти текстовые поля, по одному на строку, под текстом, и как только содержимое в одном текстовом поле меняется, вы обновляете текст, чтобы пользователь видел, как это будет выглядеть.

Комментарии:

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

2. Я думаю, что это может быть трудно понять начинающим пользователям. ИМХО, поля для заполнения должны быть разделены и четко помечены, что облегчает понимание.

3. Хорошо, дело в том, что заполнители не будут уникальными. В основном пользователь помещает знак в документ, например [] , где он хочет вставить новую часть данных, поэтому, я думаю, мне нужно сохранить ссылку на этот пункт в документе.