我正在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);
}
}
我无法理解这种奇怪行为的根本原因。有人已经遇到这个问题了吗?
非常感谢您的宝贵时间,并与我分享您的科学知识。