Управляющее свойство привязки не работает, когда форма запускается развернутой - PullRequest
1 голос
/ 09 сентября 2011

Вот моя проблема: у меня есть winform с элементами управления.У многих из этих элементов управления свойство Anchor установлено в Top | Right.Размер формы в конструкторе установлен в 1680х1050.Если мое разрешение установлено на 1680x1050, оно всегда отображается правильно.

Если я переключусь на меньшее разрешение (скажем, 1600x900) и форма будет открыта как развернутая, то ни один из моих элементов управления не переместится, чтобы сохранить расстояние от правого края.Элементы управления на правом краю немного торчат из формы.Но если я затем разверну окно, и я смогу изменить его размер, то все элементы управления сохранят свое текущее значение , неверное расстояние от правого края.

Если установить форму для запускакак обычно (не развернуто), затем он открывается со всеми элементами управления в нужном месте, и все остается в нужном месте, если я изменяю размер формы.

Это была очень неприятная проблема.Любые из вас, добрые души, советуют мне?

Ответы [ 3 ]

1 голос
/ 09 сентября 2011

Я бы порекомендовал просто использовать предложенное мной решение:

 theForm.WindowState = FormWindowState.Maximized;

Я предполагаю, что свойство "Развернуто", которое устанавливается во время вызова инициализации формы и может вызывать проблемы.(Трудно сказать, не видя код проекта).Load даже вызывается после некоторых более важных событий, поэтому, если есть какая-то существующая проблема с этим свойством, этого избегают, используя код FormWindowState.Maximized.

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

-J

0 голосов
/ 24 августа 2017

Поместите все элементы управления в SplitContainer и установите свойство Dock для splitcontainer и такой элемент управления, как datagridview = Fill

0 голосов
/ 20 января 2015

Я решаю свою проблему следующим образом:

Установите для свойства Control AutoSize значение false.

private void Form_Load(object sender, EventArgs e)
{
    dataGridView1.AutoSize = false; //true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...