2016-08-19 2 views
0

Может быть, это глупый вопрос или слишком субъективный или «он зависит», но ... есть ли какие-либо предпочтения или рекомендации по добавлению некоторых элементов управления во время разработки или время выполнения? Что касается переносимости, развязки модели из представления и этого материала, может ли это иметь значение?Рекомендации: добавьте элементы управления во время разработки или времени выполнения

Например, мне нужно использовать FolderBrowserDialog. Должно быть лучше добавить его в форму в режиме разработки или просто объявить его во время выполнения?

EDIT: Спасибо всем за ваш ответ. В этом конкретном случае: я создал кнопку для пользователя, чтобы выбрать папку. Моя идея - использовать FolderBrowserDialog. Должен ли я объявить FoleBrowserDialog INSIDE событием 'button clik' или создать его во время разработки, внедряя его в форму? Для меня EASIER создает его во время разработки, так как свойства будут легко доступны для всех форм, но я думаю, что более корректно объявлять его внутри функции события, собирать путь в строке, удалять элемент управления, верните значение. Зачем? Использовать FileBrowserDialog является «деталью реализации» обработчика событий «click click», не относящегося к остальной части формы. Развязка :)

+1

К сожалению, это слишком широко. Ответ, безусловно, «это зависит». У вас есть более узкий пример того, чего вы пытаетесь достичь? –

+2

Дизайнер - это инструмент. Используйте его по мере необходимости, всякий раз, когда он помогает вам выполнять свою работу. Но если вы создаете элементы управления и компоненты во время выполнения, * не забывайте удалять их, когда они больше не нужны * (это происходит автоматически, если вы используете конструктор). – Luaan

+2

Дизайнер - это инструмент, который генерирует код '.net' на основе действий, которые вы выполняете в дизайнере. Откройте файл 'YourForm.Designer.cs' и сравните код, сгенерированный конструктором, и код, который вы планируете использовать в своем« run-time ». Тогда вы можете сами решить, в чем разница и какой подход будет наиболее предпочтительным для вас. – Fabio

ответ

1

В общем, нет никакой разницы между использованием конструктора или определением управляющей переменной в коде, поскольку дизайнер также предоставляет некоторый эквивалентный код C# после перетаскивания &, отбрасывая элемент управления в вашу форму. Вы можете увидеть это автоматически сгенерированный код в файлах с * .Designer.cs префиксом и вы можете редактировать и изменять автоматически сгенерированный код

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

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

Благодаря! Масштабы контроля, отличного от UI, важны для понимания! Я отредактирую свой вопрос, чтобы отразить эту точку :) – Kaikus

1

Использование дизайнера в порядке. В примере FolderBrowser, который вы дали, я сделал оба в разных проектах. Тем не менее, Luaan имеет хорошие возможности для управления вручную созданными элементами управления.

1

Это действительно «зависит».

Обычно я ненавижу использовать любые инструменты разработки пользовательского интерфейса (просто моя точка зрения и полностью субъективна).

Мне не нравится, когда каждый элемент управления в форме определяется как поля уровня класса (и это то, что произойдет, если я использую конструктор), например, некоторые ярлыки, которые никогда не изменят вещь после инициализации. В свою очередь, вы не можете увидеть Label в дизайнере пользовательского интерфейса, если вы создали их во время выполнения.

Но иногда, когда я разрабатываю новое, небольшое и неактивное приложение, я не стал бы колебаться, чтобы воспользоваться преимуществами дизайнера. (Это очень быстро, если вы можете перетащить элементы управления «n drop», изменив их размер всего на несколько щелчков мыши)

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

Смежные вопросы