Form.SetDesktopLocation случайно завершается ошибкой, возвращая форму обратно в исходное положение - PullRequest
0 голосов
/ 26 апреля 2019

Я работаю в Winforms C #. После получения предыдущего местоположения формы из базы данных мне нужно отобразить ее в том же месте, поэтому я использую SetDesktopLocation для нее в показанном событии. Но иногда случайным образом форма всплывает в нужном месте и сразу возвращается в то место, которое сначала появляется с помощью метода show. Если я рекурсивно вызываю показанное событие, когда местоположение неверно, оно устанавливает его правильно.

    private void Form_Shown(object sender, EventArgs e)
    {
        SetDesktopLocation(location_x, location_y);
        if(this.Location.X != location_x)
        {
            _log.Debug($"How can that be !??! location_x = {location_x} and form location x = {this.Location.X}");
            _log.Debug($"Let's try that correct that");
            Form_Shown(sender, e);
        }
    }   

Я не могу понять причину этого странного поведения. Кто-нибудь уже сталкивался с этой проблемой?

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

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