當標題欄有mousedown事件時,flag為true;MaxFlag為表單目前為最大化;
在mouse_move中處理表單恢復到正常大小,并根據滑鼠移動距離更新表單位置;
分別執行恢復表單大小和移動表單位置都是正常的,
當放在一起執行就出現表單恢復大小后坐標在螢屏左上角原點。
理想狀態應該是表單在當前滑鼠位置恢復大小,并能繼續移動表單位置
private void TopP_MouseDown(object sender, MouseEventArgs e)
{
flag = true;
x = e.X;
y = e.Y;
}
private void TopP_MouseMove(object sender, MouseEventArgs e)
{
if (flag)
{
if (MaxFlag)
{
this.Top = Maintop ;
this.Left = Mainleft;
this.Width = Mainwidth;
this.Height = Mainheight ;
MaxFlag = false;
}
else
{
this.Location = new Point(this.Location.X - x + e.Location.X, this.Location.Y - y + e.Y);
label1.Text += this.Location.X.ToString() + "move/" + x.ToString() + "/" + e.X.ToString() + "/" + Environment.NewLine;
label1.Text += this.Top.ToString() + "move/" + this.Left.ToString() + "/" + this.Width.ToString() + "/" + this.Height.ToString() + Environment.NewLine;
}
}
}
private void TopP_MouseUp(object sender, MouseEventArgs e)
{
flag = false;
}
到底是哪出了問題呢????????????
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/132198.html
標籤:C#
