public clsPart findSelectedPart(Point pt) { clsPart retPart = null; foreach (clsPart pPart in m_PartList) { if (pPart.isPtInRect(pt)) { retPart = pPart; break; } } return(retPart); }
private void ImageDoc_MouseUp(object sender, MouseEventArgs e) { #region ***** 鼠标弹起操作 ***** if (e.Button == MouseButtons.Left) { if (m_iEditType == tagModeType.Mode_Edit) { if (m_iViewType == tagViewType.View_Area) { if (m_iToolType == tagToolType.Tool_None) { if (pSelectedPart != null) { pSelectedPart.m_bSelected = false; pSelectedPart = null; } else { #region 视图中心跟随鼠标移动 Point pt = new Point(e.X, e.Y); pt = m_AreaView.VpToLp(pt); m_AreaView.update(base.ClientRectangle, pt); Invalidate(); #endregion } } else if (m_iToolType == tagToolType.Tool_Mesure) { //测量模式,图片不移动,不作响应 } } else if (m_iViewType == tagViewType.View_Camera) { //do nothing } } } else if (e.Button == MouseButtons.Right) { if (m_iEditType == tagModeType.Mode_Edit) { if (m_iViewType == tagViewType.View_Area) { if (m_iToolType == tagToolType.Tool_Mesure) { #region 测量功能 m_iToolType = tagToolType.Tool_None; tspbtnMesureDistance.Checked = false; m_bCapture = false; #endregion } else { tspbtnMesureDistance.Checked = m_iToolType == tagToolType.Tool_Mesure; tspbtnShowGrid.Checked = m_iShowType == tagShowType.Show_Grid; menuStrip.Show(this, new Point(e.X, e.Y), ToolStripDropDownDirection.BelowRight); } } else if (m_iViewType == tagViewType.View_Camera) { if (m_iToolType == tagToolType.Tool_Mesure) { #region 测量功能 m_iToolType = tagToolType.Tool_None; tspbtnMesureDistance.Checked = false; #endregion } else { tspbtnMesureDistance.Checked = m_iToolType == tagToolType.Tool_Mesure; tspbtnShowGrid.Checked = m_iShowType == tagShowType.Show_Grid; menuStrip.Show(this, new Point(e.X, e.Y), ToolStripDropDownDirection.BelowRight); } } } } #endregion }
private void ImageDoc_MouseDown(object sender, MouseEventArgs e) { #region ***** 鼠标按下操作 ***** Point pt = new Point(e.X, e.Y); if (e.Button == MouseButtons.Left) { if (m_iEditType == tagModeType.Mode_Edit) { if (m_iViewType == tagViewType.View_Area) { if (m_iToolType == tagToolType.Tool_None) { Point lpt = m_AreaView.VpToLp(pt); pSelectedPart = clsPCB.m_pPCB.findSelectedPart(lpt); if (pSelectedPart != null) { pSelectedPart.m_bSelected = true; ptStart = ptEnd = pt; } } else if (m_iToolType == tagToolType.Tool_Mesure) { #region 测量功能 if (!m_bCapture) { ptStart = new Point(e.X, e.Y); ptEnd = new Point(e.X, e.Y); m_bCapture = true; } else { m_bCapture = false; ptEnd.X = e.X; ptEnd.Y = e.Y; Point lpStart = m_AreaView.VpToLp(ptStart); Point lpEnd = m_AreaView.VpToLp(ptEnd); int fDistance = (int)Math.Sqrt(Math.Pow((lpStart.X - lpEnd.X), 2) + Math.Pow((lpStart.Y - lpEnd.Y), 2)); int fxDistance = Math.Abs(lpStart.X - lpEnd.X); int fyDistance = Math.Abs(lpStart.Y - lpEnd.Y); string str = "X:" + fxDistance.ToString() + " um;\n" + "Y:" + fyDistance.ToString() + " um;\n" + "XY:" + fDistance.ToString() + " um;\n"; Wells.WellsFramework.WellsMetroMessageBox.Show(null, str, clsWellsLanguage.getString(108), MessageBoxButtons.OK, MessageBoxIcon.Information); } #endregion } } else if (m_iViewType == tagViewType.View_Camera) { if (m_iToolType == tagToolType.Tool_Mesure) { #region 测量功能 if (!m_bCapture) { ptStart = new Point(e.X, e.Y); ptEnd = new Point(e.X, e.Y); m_bCapture = true; } else { m_bCapture = false; ptEnd.X = e.X; ptEnd.Y = e.Y; Point lpStart = m_CameraView.VpToLp(ptStart); Point lpEnd = m_CameraView.VpToLp(ptEnd); int fDistance = (int)Math.Sqrt(Math.Pow((lpStart.X - lpEnd.X), 2) + Math.Pow((lpStart.Y - lpEnd.Y), 2)); int fxDistance = Math.Abs(lpStart.X - lpEnd.X); int fyDistance = Math.Abs(lpStart.Y - lpEnd.Y); string str = "X:" + fxDistance.ToString() + " um;\n" + "Y:" + fyDistance.ToString() + " um;\n" + "XY:" + fDistance.ToString() + " um;\n"; Wells.WellsFramework.WellsMetroMessageBox.Show(null, str, clsWellsLanguage.getString(108), MessageBoxButtons.OK, MessageBoxIcon.Information); } #endregion } } } } #endregion }