Я работаю в 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);
}
}
Я не могу понять причину этого странного поведения. Кто-нибудь уже сталкивался с этой проблемой?
Большое спасибо за ваше время и за то, что вы поделились со мной своей наукой.