Текстовое поле C #, которое функционирует как CLI - PullRequest
1 голос
/ 21 сентября 2010

Я создаю консольное приложение, и мне интересно, как лучше всего запретить пользователю редактировать ранее выполненные команды.Прямо сейчас я использую KeyPressEventHandler, чтобы проверить, где пользователь пытается набрать текст, и, по сути, игнорировать его, если каретка находится где-то в другом месте, а не в «подсказке» части текстового поля.Это функционирует точно так, как хотелось бы, просто оно не кажется идеальным решением для такого базового требования.Я умеренно новичок в C #, поэтому я не уверен, какие варианты доступны для меня, поэтому спрашиваю предложения.

Ответы [ 2 ]

3 голосов
/ 21 сентября 2010

Если вы просто хотите написать команды в конце, то может быть хорошим решением отделить ввод от вывода, с большими MultiLine, ReadOnly TextBox для вывода и отдельной отдельной строкой TextBox ниже для ввода.

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

0 голосов
/ 21 сентября 2010

@ Phill - вы можете просто фиксировать каждое нажатие клавиши пользователем, и для каждой нажатой клавиши ...

  • , если это разрешенная клавиша (т.е. не стрелка вверх), затем используйте еепостроить для пользователя видимую командную строку
  • , если она не разрешена (т.е. стрелка вверх), захватить ее (эффективно блокируя)

... если я правильно истолковал вашу озабоченность- я предполагаю, что «чистый блок» на клавише со стрелкой вверх в значительной степени решит вашу проблему с пользователями, редактирующими ранее выполненные строки.

Я отказался от этой идеи, потому что я не уверен, что правильно понял, чтоВы пытаетесь достичь.^^

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...