Как я могу инициализировать форму, чтобы она появлялась в другом месте, отличном от местоположения по умолчанию, и при этом она не появлялась для перемещения? - PullRequest
1 голос
/ 24 декабря 2010

У меня очень много времени, чтобы изменить расположение формы по умолчанию.

Я пытался изменить его в конструкторе Form, но мои изменения в местоположении каким-то образом перезаписываются. Я даже пытался изменить его в форме Load событие, но без игры в кости. Некоторые другие функциональные возможности WinForms перезаписывают местоположение, которое я хочу, некоторым предложенным по умолчанию местоположением. И до сих пор я знаю, что это происходит после события Load и после конструктора. Единственный успех, который у меня был, - это изменение в форме Shown. Но если я делаю это, то иногда (всегда, если форма содержит что-то вроде ReportViewer) вы можете увидеть мерцание формы, появляющейся в том месте, которое WinForms хочет поместить, прежде чем оно перейдет в то место, куда я хочу.

Есть мысли?

1 Ответ

5 голосов
/ 24 декабря 2010

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

Тогда, просто чтобы убедиться, что вы не видите мерцания, я бы также установил свойство Location формы в конструкторе.

См. Также: Настройка расположения экрана Windows Forms .

Наконец, предостережение: указав местоположение формы вручную, вы можете столкнуться с проблемами, если ваша программа запускается пользователем с неожиданным размером или разрешением экрана и / или с несколькими мониторами.

...