FormMove.cs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. using Infragistics.Win.UltraWinListView;
  2. using Infragistics.Win.UltraWinTabControl;
  3. using Newtonsoft.Json;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.ComponentModel;
  7. using System.Data;
  8. using System.Diagnostics;
  9. using System.Drawing;
  10. using System.IO;
  11. using System.Linq;
  12. using System.Timers;
  13. using System.Windows.Forms;
  14. using System.Xml.Linq;
  15. using Core.Mes.Client.Comm.Control;
  16. using Core.Mes.Client.Comm.Server;
  17. using Core.Mes.Client.Comm.Tool;
  18. using Core.StlMes.Client.LgResMgt.Mcms.entity;
  19. using CoreFS.CA06;
  20. using Infragistics.Win;
  21. using Infragistics.Win.Misc;
  22. using Infragistics.Win.UltraWinEditors;
  23. using Infragistics.Win.UltraWinGrid;
  24. using Infragistics.Win.UltraWinListView;
  25. using Infragistics.Win.UltraWinTabControl;
  26. using Newtonsoft.Json;
  27. using Newtonsoft.Json.Serialization;
  28. using NPOI.HSSF.UserModel;
  29. using NPOI.SS.UserModel;
  30. using NPOI.SS.Util;
  31. using BorderStyle = NPOI.SS.UserModel.BorderStyle;
  32. using HorizontalAlignment = NPOI.SS.UserModel.HorizontalAlignment;
  33. using Timer = System.Timers.Timer;
  34. using System.Net.Sockets;
  35. using System.Threading;
  36. using System.Text;
  37. using System.Collections;
  38. using Core.Mes.Client.Comm.Format;
  39. namespace CodeFile
  40. {
  41. using System.Windows.Forms;
  42. internal class FormMove
  43. {
  44. private bool isMouseDown = false;
  45. private System.Drawing.Point FormLocation; //form的location
  46. private System.Drawing.Point mouseOffset; //鼠标的按下位置
  47. private FrmBase movedForm = null;
  48. private Control conObj = null;
  49. private FormMove()
  50. { }
  51. /// <summary>
  52. ///
  53. /// </summary>
  54. /// <param name="movedForm">要移动的窗体</param>
  55. /// <param name="conObj">控制窗体移动的控件,为null,则是窗体本身</param>
  56. public FormMove(FrmBase movedForm, Control conObj)
  57. {
  58. this.movedForm = movedForm;
  59. this.conObj = (conObj==null)?movedForm:conObj;
  60. this.conObj.MouseDown += new MouseEventHandler(ConObj_MouseDown);
  61. this.conObj.MouseMove += new MouseEventHandler(ConObj_MouseMove);
  62. this.conObj.MouseUp += new MouseEventHandler(ConObj_MouseUp);
  63. }
  64. private void ConObj_MouseDown(object sender, MouseEventArgs e)
  65. {
  66. if (e.Button == MouseButtons.Left)
  67. {
  68. isMouseDown = true;
  69. FormLocation = movedForm.Location;
  70. mouseOffset = Control.MousePosition;
  71. this.conObj.Cursor = System.Windows.Forms.Cursors.SizeAll;
  72. }
  73. }
  74. private void ConObj_MouseUp(object sender, MouseEventArgs e)
  75. {
  76. this.conObj.Cursor = System.Windows.Forms.Cursors.Default;
  77. isMouseDown = false;
  78. }
  79. private void ConObj_MouseMove(object sender, MouseEventArgs e)
  80. {
  81. if (isMouseDown)
  82. {
  83. int _x = 0;
  84. int _y = 0;
  85. System.Drawing.Point pt = Control.MousePosition;
  86. _x = mouseOffset.X - pt.X;
  87. _y = mouseOffset.Y - pt.Y;
  88. movedForm.Location = new System.Drawing.Point(FormLocation.X - _x, FormLocation.Y - _y);
  89. }
  90. }
  91. }
  92. }