我有一个带有标准标题栏的标准表单,用户可以抓取并移动表单。在某些情况下,我只想将此移动限制为水平移动,因此无论鼠标实际如何移动,表单都保持在相同的 Y 坐标上。
为此,我捕获移动事件,当我检测到与 Y 的偏差时,我将表单移回原始 Y。就像这样:
private void TemplateSlide_Move(object sender, EventArgs e)
{
int y = SlideSettings.LastLocation.Y;
if (y != this.Location.Y)
{
SlideSettings.LastLocation = new Point(this.Location.X, y);
this.Location=Settings.LastLocation;
}
}
但这会导致很多闪烁。此外,因为表单实际上会在短时间内远离所需的 Y,这会导致我的程序特有的其他问题。
有没有办法防止表格偏离所需的 Y 坐标?