using OpenTK.Graphics.OpenGL; namespace Yw.WinFrmUI.Hydro { /// /// /// public partial class OrthoViewer2d : UserControl { /// /// /// public OrthoViewer2d() { InitializeComponent(); InitializeGLEvents(); } private NetworkL3d _nw = null; private OrthoViewer2dHelper _helper = null; /// /// 初始化管网 /// public void InitialNetwork(NetworkL3d nw) { _nw = nw; _helper = new OrthoViewer2dHelper(); _helper.Initial(this.glControl1, _nw); } #region 私有方法 //初始化GL事件 private void InitializeGLEvents() { this.glControl1.Load += glControl_Load; this.glControl1.Resize += glControl_Resize; this.glControl1.Paint += glControl_Paint; this.glControl1.MouseWheel += OnMouseWheel; this.glControl1.MouseDown += OnMouseDown; this.glControl1.MouseUp += OnMouseUp; this.glControl1.MouseMove += OnMouseMove; this.glControl1.MouseClick += OnMouseClick; this.glControl1.MouseDoubleClick += OnMouseDoubleClick; } #endregion #region 鼠标交互 //加载事件 private void glControl_Load(object sender, EventArgs e) { _helper?.Load(); } // 尺寸改变 private void glControl_Resize(object sender, EventArgs e) { _helper?.Resize(); } // 绘制 private void glControl_Paint(object sender, PaintEventArgs e) { _helper?.Render(); } //鼠标滚轮 private void OnMouseWheel(object sender, MouseEventArgs e) { _helper?.MouseWheel(e); } // 鼠标按下 private void OnMouseDown(object sender, MouseEventArgs e) { _helper?.MouseDown(e); } //鼠标弹起 private void OnMouseUp(object sender, MouseEventArgs e) { _helper?.MouseUp(e); } //鼠标移动 private void OnMouseMove(object sender, MouseEventArgs e) { _helper?.MouseMove(e); } //鼠标点击 private void OnMouseClick(object sender, MouseEventArgs e) { _helper?.MouseClick(e); } //鼠标双击 private void OnMouseDoubleClick(object sender, MouseEventArgs e) { _helper?.MouseDoubleClick(e); } #endregion } }