⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainfrm.cs

📁 能够在PDA上运行的地图控件
💻 CS
📖 第 1 页 / 共 2 页
字号:
		{
			Application.Run(new MainFrm());
		}

		/// <summary>
		/// 地图对象双击事件
		/// </summary>
		/// <param name="obj"></param>
		/// <param name="atlayer"></param>
		/// <param name="x"></param>
		/// <param name="y"></param>
		/// <param name="cx"></param>
		/// <param name="cy"></param>
		private void m_LineViewer_MapObjectDbClk(IMapObject obj, LineViewLib.Layer atlayer, int x, int y, double cx, double cy)
		{
			string format="对象类型: {0} 所在图层:{1}\r\n鼠标客户区坐标: ({2},{3})\r\n鼠标地图坐标:({4},{5})";
			string info=string.Format(format,obj.MAPOBJECT_TYPE,atlayer.Name,x,y,Math.Round(cx,4),Math.Round(cy,4));
			MessageBox.Show(info,"地图对象信息",MessageBoxButtons.OK,MessageBoxIcon.Asterisk,MessageBoxDefaultButton.Button1);
		}

		#region MenuItem Click事件处理

		/// <summary>
		/// 退出
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void mnExit_Click(object sender, System.EventArgs e)
		{
			this.Close();
		}

		/// <summary>
		/// 关于
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void mnAbout_Click(object sender, System.EventArgs e)
		{
			AboutDlg dlg=new AboutDlg();
			dlg.ShowDialog();
		}

		/// <summary>
		/// 绘制样例
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void mnDrawDemo_Click(object sender, System.EventArgs e)
		{
            this.m_LineViewer.DisplayDemoMap();	
		}

		/// <summary>
		/// 打开图形文件
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void mnOpenPic_Click(object sender, System.EventArgs e)
		{
			OpenFileDialog dlg=new OpenFileDialog();
			dlg.Filter="*.lvf (矢量图形)|*.lvf|*.mif (MapInfo文件)|*.mif|*.* (所有文件)|*.*";
			string filename;
			int filterIndex=-1;
			if(dlg.ShowDialog()==DialogResult.OK)
			{
				filename=dlg.FileName;
				filterIndex=dlg.FilterIndex;
			}
			else return;
			//错误信息
			string errorMsg;
			if(!this.m_LineViewer.LoadFile(filename,out errorMsg))
			{
				Cursor.Current=Cursors.Default;
				MessageBox.Show("打开文件失败!\r\n"+errorMsg);
				return;
			}
		}

		/// <summary>
		/// 保存图形
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void mnSavePic_Click(object sender, System.EventArgs e)
		{
			SaveFileDialog dlg=new SaveFileDialog();
			dlg.Filter="*.lvf (矢量图形)|*.lvf|*.mif (Mif File)|*.mif";
			string filename;
			int filterIndex=-1;
			if(dlg.ShowDialog()==DialogResult.OK)
			{
				filename=dlg.FileName;
				filterIndex=dlg.FilterIndex;
			}
			else return;
			//自动补充文件的后缀
			switch(filterIndex)
			{
				case 1:
					if(!filename.EndsWith(".lvf"))
						filename+=".lvf";
					break;
				case 2:
					if(!filename.EndsWith(".mif"))
						filename+=".mif";
					break;
			}
			string errorMsg;
			if(!this.m_LineViewer.SaveFile(filename,out errorMsg))
				MessageBox.Show(errorMsg);
			else
				MessageBox.Show("地图保存完成!\r\n"+filename);
		}

		/// <summary>
		/// 关闭图形
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void mnClosePic_Click(object sender, System.EventArgs e)
		{
			this.m_LineViewer.CloseMap();		
		}

		/// <summary>
		/// 导航器
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void mnNaviDlg_Click(object sender, System.EventArgs e)
		{
			LineViewLib.LVNaviDlg dlg=new LVNaviDlg(this.m_LineViewer);
			dlg.Show();
		}

		/// <summary>
		/// 图层管理
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void mnLayerMgr_Click(object sender, System.EventArgs e)
		{
			LineViewLib.LVLayerDlg dlg=new LVLayerDlg(this.m_LineViewer);
			dlg.ShowDialog();
		}

		/// <summary>
		/// 选项设置
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void mnOptionsDlg_Click(object sender, System.EventArgs e)
		{
			LineViewLib.LVOptionDlg dlg=new LVOptionDlg(this.m_LineViewer);
			dlg.ShowDialog();
		}

		/// <summary>
		/// 平移工具
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void mnToolPan_Click(object sender, System.EventArgs e)
		{
			//菜单间互斥
			if(this.m_LastCheckedMenuItem!=null)
				this.m_LastCheckedMenuItem.Checked=false;
			MenuItem item=sender as MenuItem;			
			item.Checked = true;
			this.m_LastCheckedMenuItem=item;
            this.m_LineViewer.CurrentTool=LVTool.Pan;
		}

		/// <summary>
		/// 缩放到矩形
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void mnToolZoomRect_Click(object sender, System.EventArgs e)
		{
			//菜单间互斥
			if(this.m_LastCheckedMenuItem!=null)
				this.m_LastCheckedMenuItem.Checked=false;
			MenuItem item=sender as MenuItem;			
			item.Checked = true;
			this.m_LastCheckedMenuItem=item;
			this.m_LineViewer.CurrentTool=LVTool.ZoomToRect;
		}

		/// <summary>
		/// 捕捉对象
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void mnToolSelObj_Click(object sender, System.EventArgs e)
		{
			//菜单间互斥
			if(this.m_LastCheckedMenuItem!=null)
				this.m_LastCheckedMenuItem.Checked=false;
			MenuItem item=sender as MenuItem;			
			item.Checked = true;
			this.m_LastCheckedMenuItem=item;
			this.m_LineViewer.CurrentTool=LVTool.CaptureObject;
		}

		/// <summary>
		/// 设置中心点
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void mnToolSetCenter_Click(object sender, System.EventArgs e)
		{
			//菜单间互斥
			if(this.m_LastCheckedMenuItem!=null)
				this.m_LastCheckedMenuItem.Checked=false;
			MenuItem item=sender as MenuItem;			
			item.Checked = true;
			this.m_LastCheckedMenuItem=item;
			this.m_LineViewer.CurrentTool=LVTool.SetCenter;
		}
		#endregion

		/// <summary>
		/// 工具栏图标按钮的处理!
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void toolBar1_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e)
		{
			//获取当前按下按钮索引,强制转为byte!
			int index=this.toolBar1.Buttons.IndexOf(e.Button);
			switch(index)
			{
				case 0:
					//前一个视图:
					this.m_LineViewer.GotoPreviousView();
					break;

				case 1:
					//后一个视图:
					this.m_LineViewer.GotoNextView();
					break;

				case 2:
					//缩放到全图(ViewBox)
					this.m_LineViewer.ZoomToViewbox();
					//非LVTool操作,需要将视图手工入栈!!!
					this.m_LineViewer.PushCurrentView();
					break;

				case 3:
					//zoom in: 放大
					this.m_LineViewer.ZoomIn();
					//非LVTool操作,需要将视图手工入栈!!!
					this.m_LineViewer.PushCurrentView();
					break;

				case 4:
					//zoom out: 缩小
					this.m_LineViewer.ZoomOut();
					//非LVTool操作,需要将视图手工入栈!!!
					this.m_LineViewer.PushCurrentView();
					break;
				default:
					break;
			}
	
		}

	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -