Реализация представления только для чтения в приложении Winform - PullRequest
1 голос
/ 15 марта 2010

У меня есть собственное приложение winform для просмотра, редактирования и вставки данных членов. Существует около 40 отдельных страниц форм, которые они используют для манипулирования различными частями данных.

Мой вопрос такой; Каков наилучший способ реализации представления только для чтения для страницы формы?

Мои мысли были переключаться между настройками управления Enabled = False или же оставьте их, но не допускайте изменений данных (без кнопки сохранения и т. д.), если они не «разблокированы».

Мне любопытно, как другие справляются с этим с помощью приложений WinForm?

Ответы [ 3 ]

1 голос
/ 15 марта 2010

Если привязка данных не поддерживает чтение только для чтения, тогда Да, напишите некоторый код, чтобы сделать пользовательский интерфейс максимально доступным для чтения. Но это не «безопасно», поэтому обязательно заблокируйте все команды, которые могут вызвать обновление.

Вы хотите, чтобы он был доступен только для чтения, не позволяйте пользователям редактировать поля, которые они не могут сохранить. Но не устанавливайте Enabled = false везде, который ведет себя по-разному (нет выбора / копирования и т. Д.).

И подумайте о комбинированных списках, хотите ли вы, чтобы они могли выпадать?

1 голос
/ 15 марта 2010

Я думаю, что если поле не предназначено для редактирования, оно не должно выглядеть как поле. Если сделать его похожим на поле, пользователь получает визуальную очередь , которую он должен редактировать. Они могут задаться вопросом, почему это не так. Итак, вместо Enabled=False, почему бы вам не сделать метки только для чтения?

Обновление: Альтернатива, если вам нужно сохранить их Текстовые поля, это оформить их так, чтобы они выглядели как ярлыки. Это означало бы сделать их фоновый цвет серым, удалить границу и убрать табуляцию. Вы можете создать DisableField функцию для этого.

0 голосов
/ 15 марта 2010

Возможно, было бы лучше сказать это так, если поля в форме доступны только для чтения, а затем заменить их на метки, которые нельзя редактировать. Это будет более подходящим для текстовых полей, флажков, так как для комбинированных полей и списков, возможно, вам придется также присвоить им метку, показывая выбор, используемый в обоих случаях в качестве меток - как вы думаете?

Фактически, вот несколько ссылок, которые позволят вам сохранить комбинированные списки / списки, если вы хотите избежать выбора в качестве меток ...

  • Статья о внедрении комбинированного блока только для чтения находится на CodeProject
  • Единственное, что надо - это то, что поле со списком не будет выглядеть идеально отшлифованным, если только для чтения, в этой статье о CodeProject показано, как сделать его более отшлифованным.
  • Комбокс, доступный только для чтения (VB.NET), использующий IExtendedProvider здесь на CodeProject
  • Список в сочетании с флажком, используемым в качестве списка для чтения только здесь CodeProject
  • Как отключить флажок, но не полосу прокрутки здесь на Social.MSDN.Microsoft.com
  • Статья в списке с отключенными элементами здесь CodeProject
...