#c# #winforms
#c# #winforms
Вопрос:
Мне нужно разработать своего рода систему шаблонов для текста: пользователь вводит фрагмент текста и вводит некоторые специальные маркеры, такие как (* *) внутри текста, которые сообщают программному обеспечению, что текст (**) нужно будет изменить на какой-то другой контент.
Что я хотел бы сделать, так это отобразить пользователю список полей, которые необходимо изменить, чтобы пользователь мог вставить нужные данные.
Я думал о том, чтобы отобразить весь текст (в текстовом поле) и заменить символы (**) текстовым полем, чтобы пользователь мог вводить текст. Есть ли способ сделать это? Что вы думаете об этом подходе? У вас есть идеи получше? Дело в том, что я хотел бы показать пользователю контекст, в котором происходит замена.
Спасибо.
Ответ №1:
Почему бы не отсканировать текст и сгенерировать текстовые поля «на лету»?
Ваш код будет отображать шаблонный текст, сканировать его, а затем, в зависимости от найденной шаблонной переменной, генерировать 1 текстовое поле. Вы перечисляете эти текстовые поля, по одному на строку, под текстом, и как только содержимое в одном текстовом поле меняется, вы обновляете текст, чтобы пользователь видел, как это будет выглядеть.
Комментарии:
1. Итак, вы бы предложили отобразить окончательный текст список текстовых полей в столбце рядом с текстом, например? Я думал о том, чтобы поместить их внутри текста, чтобы сделать связь между текстом, который пользователь вставляет, и шаблоном более понятной. Я боюсь, что таким образом отношения слишком далеки друг от друга.
2. Я думаю, что это может быть трудно понять начинающим пользователям. ИМХО, поля для заполнения должны быть разделены и четко помечены, что облегчает понимание.
3. Хорошо, дело в том, что заполнители не будут уникальными. В основном пользователь помещает знак в документ, например [] , где он хочет вставить новую часть данных, поэтому, я думаю, мне нужно сохранить ссылку на этот пункт в документе.