ユーザーがフォームをつかんで移動できる標準のタイトルバーを備えた標準のフォームがあります。特定の状況では、この動きを水平方向のみに制限したいので、マウスが実際にどのように動いても、フォームは同じ 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 座標から離れないようにする方法はありますか?