C#实现主窗体最小化后出现悬浮框及双击悬浮框恢复原窗体的方

2019-12-26 13:25:53王冬梅
  • private frmMain pParent;  /// <summary> 
  • /// 悬浮窗口的Load事件  /// </summary> 
  • /// <param name="sender"></param>  /// <param name="e"></param> 
  • private void frmTopMost_Load(object sender, EventArgs e)  { 
  • this.Show();  this.Top = 100; 
  • this.Left = Screen.PrimaryScreen.Bounds.Width - 100;  this.Width = 80; 
  • this.Height = 80;  } 
  • private void frmTopMost_MouseMove(object sender, MouseEventArgs e)  { 
  • if (blnMouseDown)  { 
  • ptMouseNewPos = Control.MousePosition;  ptFormNewPos.X = ptMouseNewPos.X - ptMouseCurrrnetPos.X + ptFormPos.X; 
  • ptFormNewPos.Y = ptMouseNewPos.Y - ptMouseCurrrnetPos.Y + ptFormPos.Y;  Location = ptFormNewPos; 
  • ptFormPos = ptFormNewPos;  ptMouseCurrrnetPos = ptMouseNewPos; 
  • }  } 
  • private void frmTopMost_MouseDown(object sender, MouseEventArgs e)  { 
  • if (e.Button == MouseButtons.Left)  { 
  • blnMouseDown = true;  ptMouseCurrrnetPos = Control.MousePosition; 
  • ptFormPos = Location;  } 
  • }  private void frmTopMost_MouseUp(object sender, MouseEventArgs e) 
  • {  if (e.Button == MouseButtons.Left) 
  • blnMouseDown = false;  } 
  • /// <summary>  /// 双击悬浮窗体,进行恢复主窗体。 
  • /// </summary>  /// <param name="sender"></param> 
  • /// <param name="e"></param>  private void frmTopMost_MouseDoubleClick(object sender, MouseEventArgs e) 
  • {  SwitchToMain(); 
  • }  private void SwitchToMain() 
  • {  pParent.RestoreWindow(); 
  • this.Hide();  } 
  • }  }