📄 mainfrm.cs
字号:
{
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 + -