Windows10, при открытии формы размер ширины формы остается в 1,25 раза больше - PullRequest
3 голосов
/ 07 февраля 2020

Я хочу восстановить размер формы, и я использовал следующие коды.

Я получил идею из этой нити .

И я обнаружил, что на некоторых машинах (в частности, Windows10) ширина формы удваивается при повторном открытии этого Speci c форма.

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

Поскольку я не рассчитывал, а сохранял размер формы напрямую, я понятия не имею, где искать.

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

private void Form_Load(object sender, EventArgs e)
{
    this.RestoreWindowPosition();
}

private void SaveWindowPosition()
{
    Properties.Settings.Default.ReviewFormState = this.WindowState;

    if (this.WindowState == FormWindowState.Normal)
    {
        Properties.Settings.Default.ReviewFormLocation = this.Location;
        Properties.Settings.Default.ReviewFormSize = this.Size;
    }
    else
    {
        Properties.Settings.Default.ReviewFormLocation = this.RestoreBounds.Location;
        Properties.Settings.Default.ReviewFormSize = this.RestoreBounds.Size;
    }

    Properties.Settings.Default.ReviewFormHasSetDefaults = true;

    Properties.Settings.Default.Save();
}

private void Form_FormClosing(object sender, FormClosingEventArgs e)
{
    this.SaveWindowPosition();
}

private void RestoreWindowPosition()
{
    if (Properties.Settings.Default.ReviewFormHasSetDefaults)
    {
        this.WindowState = Properties.Settings.Default.ReviewFormState;
        this.Location = Properties.Settings.Default.ReviewFormLocation;
        this.Size = Properties.Settings.Default.ReviewFormSize;
    }
}

После удаленного сеанса

Как я уже говорил ранее, я завершил удаленный сеанс. Я узнал, что это из-за масштабной проблемы. Но все же это кажется довольно странным. Я проверил меню [настройки дисплея - масштаб и макет], и оно составило 125%. Затем я открываю форму и повторяю. Я обнаружил, что размер формы растет. Я думаю, что это было 1,25 раза с первой попытки. Я изменил шкалу на 100%, затем открыл и повторил то же самое. За это время я ничего не нашел; форма была в том же размере.

Мой средний шаг заключается в том, что мне нужно сохранить чистый размер формы. Я переведу по шкале. Тогда, я думаю, я могу получить реальный размер формы. Я не совсем уверен, что попытаюсь поделиться тем, что я найду для кого-то в l oop.

@ Jimi и @Louis Go Я надеюсь, что однажды я тоже смогу вам помочь. Спасибо за помощь мне.

1 Ответ

0 голосов
/ 23 апреля 2020

Джими:

Сделайте ваше приложение DpiAware, если не сделали. Начните отсюда: Как настроить приложение для правильной работы на компьютере с настройкой высокого DPI (например, 150%)? , затем взгляните на настройки app.config и на High DPI поддержка Windows форм (рассмотрите и протестируйте настройку PerMonitorV2). Примите во внимание форму AutoScaleMode. Смотрите разницу между Dpi и Font.

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