当前位置: 首页 > news >正文

wordpress能做手机站吗微信app开发

wordpress能做手机站吗,微信app开发,王烨燃中国中医科学院,网站建设设计时代创信好C#自己开发AGV地图编辑软件#xff1a; 1、自由添加和删除站点、停车位、小车、运行路径。 2、编辑得地图以XML文件保存。 3、导入编辑好地图的XML文件。 4、程序都是源码#xff0c;可以直接在此基础上进行二次开发。 下载链接#xff1a;https://download.csdn.net/d…C#自己开发AGV地图编辑软件 1、自由添加和删除站点、停车位、小车、运行路径。 2、编辑得地图以XML文件保存。 3、导入编辑好地图的XML文件。 4、程序都是源码可以直接在此基础上进行二次开发。 下载链接https://download.csdn.net/download/panjinliang066333/88855372 部分代码展示 #region 限制闪屏protected override CreateParams CreateParams{get{const int WS_MINIMIZEBOX 0x00020000; // Winuser.h中定义 CreateParams cp base.CreateParams;cp.Style cp.Style | WS_MINIMIZEBOX; // 允许最小化操作return cp;}}#endregionNodeType newType NodeType.MousePick;MapPanel mapPanelDocker;FloydHelper floydCurrent;#region AGV配置信息int AGVCount 0;object[] lockObj;//线程间锁MapVehicle[] myAgvModel;//---占据的单元Dictionarystring, string LockUnit new Dictionarystring, string();#endregion#region 画布属性private int maxScale 0; //X轴最大刻度private static int AxisOffset 32;//X轴的Y坐标偏移量private Font font new Font(宋体, 9F, FontStyle.Regular); //刻度值显示字体bool showRule true;bool showNetLine true;public static int MonitorDPI 12;//单位内像素点 public static float scaling 1.0F; //缩放比例#endregion#region 变量#region 其他窗体frm_ModelProperty frm_Property;#endregion#endregion#region 其他窗体LoadingForm loadForm;#endregion#region 窗体初始化#region 初始化public frm_AGVMain(){InitializeComponent();loadForm new LoadingForm();loadForm.ShowLoadingDealy(3);mapPanelDocker new MapPanel();mapPanelDocker.Size this.pnlMap.Size;mapPanelDocker.Location new Point(0, 0);mapPanelDocker.BorderStyle BorderStyle.FixedSingle;mapPanelDocker.MouseClick mapPanel1_MouseClick;mapPanelDocker.MouseMove mapPanelDocker_MouseMove;mapPanelDocker.MouseLeave mapPanelDocker_MouseLeave;this.pnlMap.Controls.Add(mapPanelDocker);mapPanelDocker.LinePropertySelect MapPanelDocker_LinePropertySelect;mapPanelDocker.MapNodePropertySelect MapPanelDocker_CirclePropertySelect;mapPanelDocker.BezierLinePropertySelect MapPanelDocker_BezierLinePropertySelect;mapPanelDocker.BlockPropertySelect mapPanelDocker_BlockPropertySelect;mapPanelDocker.IsLine newType NodeType.DirectLineCap; ;mapPanelDocker.IsBezierLine newType NodeType.BezierLineCap;InitialControlsOptions();InitialTreeViewLayout();}#endregion#region 初始化加载控件属性private void InitialControlsOptions(){newType NodeType.MousePick;this.btn_鼠标.Enabled false;foreach (Control item in this.panel8.Controls){if (item.GetType() typeof(Button)){Button btn (Button)item;if (btn.Name.Contains(_)){btn.Click btnAll_Click;}}}}#endregion#region 鼠标箭头/站点、停车点......点击private void btnAll_Click(object sender, EventArgs e){foreach (Control item in this.panel8.Controls){if (item.GetType() typeof(Button)){Button btnTemp (Button)item;if (btnTemp.Name.Contains(_)){btnTemp.Enabled true;}}}Button btn (Button)sender;string strTemp btn.Name.Split(_)[1];switch (strTemp){case 鼠标:default:newType NodeType.MousePick;this.btn_鼠标.Enabled false;break;case 站点:newType NodeType.StationNode;this.btn_站点.Enabled false;break;case 停车点:newType NodeType.ParkingStationNode;this.btn_停车点.Enabled false;break;case 直线箭头:newType NodeType.DirectLineCap;this.btn_直线箭头.Enabled false;break;case 曲线箭头:newType NodeType.BezierLineCap;this.btn_曲线箭头.Enabled false;break;case 块:newType NodeType.Block;break;case 车:newType NodeType.Vehicle;break;}mapPanelDocker.IsLine newType NodeType.DirectLineCap;mapPanelDocker.IsBezierLine newType NodeType.BezierLineCap;}#endregion#region 树状展开添加Layoutprivate void InitialTreeViewLayout(){this.treeviewLayout.Nodes.Clear();TreeNode tn_origine new TreeNode();tn_origine.Text Layout VLayout-01;tn_origine.ToolTipText tn_origine.Text;this.treeviewLayout.Nodes.Add(tn_origine);AGV_Point[] allPoints ReadXmlFile.ReadAllPoint(GlobalSystemConfig.Instance.AgvConfigPath);if (allPoints ! null){#region 添加所有的点TreeNode tn_sub new TreeNode();tn_sub.Text Points;tn_sub.ToolTipText tn_sub.Text;tn_origine.Nodes.Add(tn_sub);for (int i 0; i allPoints.Length; i){TreeNode tn_child new TreeNode();tn_child.Text Point allPoints[i]._Name;tn_child.ToolTipText tn_child.Text;tn_sub.Nodes.Add(tn_child);//二级菜单}#endregion}AGV_Line[] allLines ReadXmlFile.ReadAllLine(GlobalSystemConfig.Instance.AgvConfigPath);if (allLines ! null){#region 添加所有的路径TreeNode tn_sub new TreeNode();tn_sub.Text Paths;tn_sub.ToolTipText tn_sub.Text;tn_origine.Nodes.Add(tn_sub);for (int i 0; i allLines.Length; i){TreeNode tn_child new TreeNode();tn_child.Text Path allLines[i].LineName;tn_child.ToolTipText tn_child.Text;tn_sub.Nodes.Add(tn_child);//二级菜单}#endregion}AGV_Block[] allBlocks ReadXmlFile.ReadAllBlock(GlobalSystemConfig.Instance.AgvConfigPath);if (allBlocks ! null){#region 添加所有的块TreeNode tn_sub new TreeNode();tn_sub.Text Blocks;tn_sub.ToolTipText tn_sub.Text;tn_origine.Nodes.Add(tn_sub);for (int i 0; i allBlocks.Length; i){TreeNode tn_child new TreeNode();tn_child.Text Block allBlocks[i].BlockName;tn_child.ToolTipText tn_child.Text;tn_child.ContextMenuStrip this.menuBlock;tn_sub.Nodes.Add(tn_child);//二级菜单string[] strArr allBlocks[i].menbers.Split(,);for (int j 0; j strArr.Length; j){AGV_Line lineTemp null;for (int k 0; k allLines.Length; k){if (allLines[k].LineName strArr[j]){lineTemp allLines[k];break;}}if (lineTemp ! null){TreeNode tn_childchild new TreeNode();tn_childchild.Text Path lineTemp.LineName;tn_childchild.ToolTipText tn_childchild.Text;tn_child.Nodes.Add(tn_childchild);//三级菜单}}}#endregion}this.treeViewVehicle.Nodes.Clear();tn_origine new TreeNode();tn_origine.Text Layout Vehicles;tn_origine.ToolTipText tn_origine.Text;this.treeViewVehicle.Nodes.Add(tn_origine);mapPanelDocker.OpenMap(GlobalSystemConfig.Instance.AgvConfigPath);this.treeviewLayout.ExpandAll();this.treeViewVehicle.ExpandAll();}#region 添加子节点时public void TreeView1_DrawNode(object sender, DrawTreeNodeEventArgs e){Font rootFont new Font(微软雅黑, 9F, FontStyle.Bold);Font childFont new Font(微软雅黑, 9F);Brush foreBrush new SolidBrush(Color.FromArgb(81, 81, 81));Brush recBrush new SolidBrush(Color.FromArgb(82, 218, 163));Brush recSelectedBrush new SolidBrush(Color.FromArgb(248, 248, 255));Pen recPen new Pen(new SolidBrush(Color.FromArgb(226, 226, 226)));Pen recHoverPen new Pen(new SolidBrush(Color.FromArgb(82, 218, 163)));Pen linePen new Pen(Color.Gray);linePen.DashStyle DashStyle.Dot;Image icon;if (e.Node.Level 0)//根节点{#region 绘制根节点icon Resources.布局图;if (e.Node.Text.Contains(Vehicles)){icon Resources.ziyuan;}e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(227, 251, 244)), e.Bounds);e.Graphics.DrawImage(icon, e.Node.Bounds.X - 20, e.Node.Bounds.Y 5);e.Graphics.DrawString(e.Node.Text, rootFont, foreBrush, e.Node.Bounds.Left 10, e.Node.Bounds.Top 5);#endregion}else if (e.Node.Level 1){#region 一级子节点if (!e.Bounds.IsEmpty){Point start new Point(e.Node.Bounds.X, e.Node.Bounds.Y 15);Point middle new Point(e.Node.Bounds.X - 30, e.Node.Bounds.Y 15);Point topEnd new Point(e.Node.Bounds.X - 30, e.Node.Bounds.Y);Point bottomEnd new Point(e.Node.Bounds.X - 30, e.Node.Bounds.Y 30);e.Graphics.DrawLine(linePen, start, middle);e.Graphics.DrawLine(linePen, middle, topEnd);if (null ! e.Node.NextNode){e.Graphics.DrawLine(linePen, middle, bottomEnd);}#region 重绘图标if (!e.Node.IsExpanded){icon Resources.plus;e.Graphics.DrawImage(icon, e.Node.Bounds.X - 25, e.Node.Bounds.Y 8);icon Resources.wenjianjia__2_;e.Graphics.DrawImage(icon, e.Node.Bounds.X - 10, e.Node.Bounds.Y 8);}else{icon Resources.jianhao_1;e.Graphics.DrawImage(icon, e.Node.Bounds.X - 25, e.Node.Bounds.Y 8);icon Resources.wenjianjia__2_;e.Graphics.DrawImage(icon, e.Node.Bounds.X - 10, e.Node.Bounds.Y 8);}#endregionRectangle box new Rectangle(e.Bounds.Left 60, e.Bounds.Top 4, this.Width - 60 - 25, e.Bounds.Height - 8);if (e.Node.IsSelected)//二级节点被选中{e.Graphics.FillRectangle(recBrush, box);}e.Graphics.DrawString(e.Node.Text, childFont, foreBrush, e.Node.Bounds.Left 15, e.Node.Bounds.Top 6);}#endregion}else{#region 二级子节点if (!e.Bounds.IsEmpty){Point start new Point(e.Node.Bounds.X 5, e.Node.Bounds.Y 15);Point middle new Point(e.Node.Bounds.X - 20, e.Node.Bounds.Y 15);Point topEnd new Point(e.Node.Bounds.X - 20, e.Node.Bounds.Y);Point bottomEnd new Point(e.Node.Bounds.X - 20, e.Node.Bounds.Y 30);e.Graphics.DrawLine(linePen, middle, topEnd);//|e.Graphics.DrawLine(linePen, start, middle);//--if (null ! e.Node.NextNode){e.Graphics.DrawLine(linePen, middle, bottomEnd);}Rectangle box new Rectangle(e.Bounds.Left 65, e.Bounds.Top 4, this.Width - 55 - 25, e.Bounds.Height - 8);if (e.Node.Text.StartsWith(Point)){icon Resources.icon_test;e.Graphics.DrawImage(icon, e.Node.Bounds.X - 15, e.Node.Bounds.Y 8);}else if (e.Node.Text.StartsWith(Path)){icon Resources.quxian;e.Graphics.DrawImage(icon, e.Node.Bounds.X - 15, e.Node.Bounds.Y 8);}else if (e.Node.Text.StartsWith(Block)){icon Resources.icon_block;e.Graphics.DrawImage(icon, e.Node.Bounds.X - 15, e.Node.Bounds.Y 8);}else if (e.Node.Text.StartsWith(Vehicle)){icon Resources.ziyuan;e.Graphics.DrawImage(icon, e.Node.Bounds.X - 15, e.Node.Bounds.Y 8);}if (e.Node.IsSelected)//二级节点被选中{e.Graphics.FillRectangle(recBrush, box);e.Graphics.DrawString(e.Node.Text, childFont, recSelectedBrush, e.Node.Bounds.Left 10, e.Node.Bounds.Top 6);}else{if ((e.State TreeNodeStates.Hot) ! 0)//鼠标指针在二级节点上{e.Graphics.DrawRectangle(recHoverPen, box);}else{e.Graphics.DrawRectangle(recPen, box);}e.Graphics.DrawString(e.Node.Text, childFont, foreBrush, e.Node.Bounds.Left 10, e.Node.Bounds.Top 6);}}#endregion}}#endregion#endregion#region 画标尺和网格/// summary/// 画标尺和网格/// /summary/// param nameshowRule/param/// param nameshowNetLine/param/// returns/returnsprivate Bitmap PaintRulesAndLine(bool showRule, bool showNetLine){Bitmap bit new Bitmap(this.Width * 4, this.Height * 4);Graphics g Graphics.FromImage(bit);int widthInmm bit.Width;int heightInmm bit.Height;Pen p new Pen(Color.Black, 1.5F);if (showRule){#region 绘制X轴标尺for (int i 0; i widthInmm / MonitorDPI * scaling; i)//标尺总数{float x MonitorDPI * scaling * i AxisOffset;PointF start new PointF(x, AxisOffset);PointF end new PointF(x, AxisOffset - 3);if (i % 5 0){end new PointF(x, AxisOffset - 6);}if (i % 10 0){end new PointF(x, AxisOffset - 13);PointF pStrPoint i 0 ? new PointF(x - 3, AxisOffset - 25) : new PointF(x - 10, AxisOffset - 25);g.DrawString((i * 100).ToString(), font, Brushes.Black, pStrPoint);}g.DrawLine(Pens.Black, start, end);}#endregionBrush bBlack Brushes.Black;#region 绘制y轴标尺for (int i 0; i heightInmm / MonitorDPI * scaling; i){float y MonitorDPI * scaling * i AxisOffset;PointF start new PointF(AxisOffset, y);PointF end new PointF(AxisOffset - 3, y);if (i % 5 0){end new PointF(AxisOffset - 6, y);}if (i % 10 0){end new PointF(AxisOffset - 12, y);PointF pStrPoint i 0 ? new PointF(AxisOffset - 20, y - 5) : new PointF(AxisOffset - 32, y - 12);g.DrawString((i * 100).ToString(), font, bBlack, pStrPoint);}g.DrawLine(Pens.Black, start, end);}#endregion}if (showNetLine){#region 绘制网格p new Pen(Color.Gray, 1);p.DashStyle DashStyle.Dot;for (int i 0; i widthInmm / MonitorDPI; i)//x方向网格{g.DrawLine(p, AxisOffset, ((float)(MonitorDPI * i * scaling) AxisOffset), widthInmm, ((float)(MonitorDPI * i * scaling) AxisOffset));}for (int i 0; i widthInmm / MonitorDPI; i)//y方向网格{g.DrawLine(p, ((float)(MonitorDPI * i * scaling) AxisOffset), AxisOffset, ((float)(MonitorDPI * i * scaling) AxisOffset), heightInmm);}#endregion}p new Pen(Color.Black, 1);g.DrawLine(p, new PointF(AxisOffset, AxisOffset), new PointF(widthInmm, AxisOffset));g.DrawLine(p, new PointF(AxisOffset, AxisOffset), new PointF(AxisOffset, heightInmm));return bit;}#endregion#region 获得垂直的文本格式private string GetVString(string inStr){string retStr ;for (int i 0; i inStr.Length; i){retStr inStr[i] Environment.NewLine;}return retStr;}#endregion#endregion#region 窗体加载时private void frm_AGVMain_Load(object sender, EventArgs e){timer1.Start();}#endregion#region 绑定对应的属性窗口private void MapPanelDocker_CirclePropertySelect(MapNodeProperty mapStation){propertyGridControl.SelectedObject mapStation;}private void MapPanelDocker_LinePropertySelect(MapLineProperty mapLine){propertyGridControl.SelectedObject mapLine;}private void MapPanelDocker_BezierLinePropertySelect(MapBezierProperty mapBezierLine){propertyGridControl.SelectedObject mapBezierLine;}private void mapPanelDocker_BlockPropertySelect(MapBlockProperty mapBlock){propertyGridControl.SelectedObject mapBlock;}#endregion#region 获取临近标尺内的网格点public static Point GetNearRulePoint(Point p){Point retP p;int x p.X;int y p.Y;int intTempx (int)((x - AxisOffset) / MonitorDPI / scaling);//在第几个网格int intTempy (int)((y - AxisOffset) / MonitorDPI / scaling);//在第几个网格int singleRuleNetWidth (int)(MonitorDPI * scaling);int locationX AxisOffset (int)((intTempx 1) * MonitorDPI * scaling);int locationX1 AxisOffset (int)((intTempx) * MonitorDPI * scaling);int locationY AxisOffset (int)((intTempy 1) * MonitorDPI * scaling);int locationY1 AxisOffset (int)((intTempy) * MonitorDPI * scaling);if (retP.X locationX1 singleRuleNetWidth / 2){retP.X locationX;}else{retP.X locationX1;}if (retP.Y locationY1 singleRuleNetWidth / 2){retP.Y locationY;}else{retP.Y locationY1;}return retP;}#endregion#region 转换成模型坐标/// summary/// 转成模型坐标/// /summary/// param namepSourceLocation/param/// returns/returnsprivate Point GetInFactLocation(Point pSourceLocation){int x pSourceLocation.X;int y pSourceLocation.Y;if (x AxisOffset y AxisOffset){x (int)((x - AxisOffset) / MonitorDPI / scaling * 100);y (int)((y - AxisOffset) / MonitorDPI / scaling * 100);}Point pTemp new Point(x, y);return pTemp;}#endregion#region 点击添加MapNodeprivate void mapPanel1_MouseClick(object sender, MouseEventArgs e){if (e.Button ! MouseButtons.Left) return;if (newType NodeType.StationNode){#region 如果是站点MapNode mapCircle new MapNode();mapPanelDocker.Controls.Add(mapCircle);mapCircle.Name Point- GetMaxPointName();mapCircle.NameText mapCircle.Name;mapCircle.OnNameChange mapPanelDocker.mapCircle_OnNameChange;mapCircle.Left e.X;mapCircle.Top e.Y;mapCircle.Size new Size(20, 20);mapCircle._type 站点;mapCircle.Click mapPanelDocker.MapCircle_Click;mapCircle.Focus();Label label1 new Label();label1.BorderStyle BorderStyle.None;label1.Name mapCircle.Name;label1.BackColor Color.Transparent;label1.Location new Point((mapCircle).Location.X - 15, (mapCircle).Location.Y - 12);label1.ForeColor mapPanelDocker.BackColor Color.Black ? Color.White : Color.Black;label1.Text mapCircle.Name;label1.AutoSize true;label1.Visible true;label1.BringToFront();mapPanelDocker.Controls.Add(label1);#endregion}else if (newType NodeType.ParkingStationNode){#region 停车点MapNode mapCircle new MapNode();mapPanelDocker.Controls.Add(mapCircle);mapCircle.Name Point- GetMaxPointName();mapCircle.NameText mapCircle.Name;mapCircle.OnNameChange mapPanelDocker.mapCircle_OnNameChange;mapCircle.Left e.X;mapCircle.Top e.Y;mapCircle.Size new Size(20, 20);mapCircle._type 停车点;mapCircle.Click mapPanelDocker.MapCircle_Click;mapCircle.Focus();Label label1 new Label();label1.BorderStyle BorderStyle.None;label1.Name mapCircle.Name;label1.BackColor Color.Transparent;label1.Location new Point((mapCircle).Location.X - 15, (mapCircle).Location.Y - 12);label1.ForeColor mapPanelDocker.BackColor Color.Black ? Color.White : Color.Black;label1.Text mapCircle.Name;label1.AutoSize true;label1.Visible true;label1.BringToFront();mapPanelDocker.Controls.Add(label1);#endregion}else{propertyGridControl.SelectedObject new MapPanelProperty((MapPanel)sender);}}#endregion#region 获得一个临时的最大的站点名称/// summary/// 获得一个临时的最大的站点数字编号/// /summary/// returns/returnsprivate string GetMaxPointName(){Liststring pointListTemp new Liststring();foreach (Control item in this.mapPanelDocker.Controls){if (item.GetType() typeof(MapNode)){MapNode station (MapNode)item;string _Name station.Name;if (!pointListTemp.Contains(_Name)){pointListTemp.Add(_Name);}}}for (int i 0; i pointListTemp.Count; i){if (pointListTemp[i] null){pointListTemp.Remove(pointListTemp[i]);}}if (pointListTemp.Count 0){return 001;}else if (pointListTemp.Count 1 pointListTemp[0] ){return 001;}else{string maxPoint pointListTemp.OrderBy(a a.ToString()).Max();string strTemp maxPoint.Split(-)[1];int intTemp2 int.Parse(strTemp);return (intTemp2 1).ToString().PadLeft(3, 0);}}#endregion#region 获得一个最大的块的名称public string GetMaxBlockName(){AGV_Block[] allBlocks XmlHelper.ReadXmlFile.ReadAllBlock(GlobalSystemConfig.Instance.AgvConfigPath);if (allBlocks ! null allBlocks.Length 0){string strTemp allBlocks.Select(e e.BlockName).Max();if (strTemp ! ){int intTemp int.Parse(strTemp.Replace(Block-, ));return (intTemp 1).ToString().PadLeft(3, 0);}else{return 001;}}return 001;}#endregion#region 定时器主线程private void timer1_Tick(object sender, EventArgs e){#region 显示指针样式和时间string temp ;switch (newType){case NodeType.MousePick:default:temp 鼠标;break;case NodeType.StationNode:temp 站点;break;case NodeType.ParkingStationNode:temp 停车点;break;case NodeType.DirectLineCap:temp 直线箭头;break;case NodeType.BezierLineCap:temp 曲线箭头;break;case NodeType.Block:temp 块;break;case NodeType.Vehicle:temp 车;break;}this.lb_NewType.Text 当前选项: temp;this.lbTime.Text DateTime.Now.ToString(yyyy-MM-dd hh:mm:ss(ddd));#endregion}#endregion#region 窗体关闭时private void frm_AGVMain_FormClosing(object sender, FormClosingEventArgs e){DialogResult dg MessageBox.Show(Do you want to exit this Application?, Warning, MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);if (dg DialogResult.OK){try{timer1.Stop();}catch{}finally{loadForm new LoadingForm();loadForm.ShowLoadingDealy(2);Application.ExitThread();Application.Exit();//通知winform消息循环退出 在所有前台线程退出后退出应用 先停止线程 再终止线程Environment.Exit(1);//直接终止所有线程code为1即使有错误也直接终止 直接终止线程}}else{e.Cancel true;}}#endregion#region 打开配置文件private void btn_打开文件_Click(object sender, EventArgs e){OpenFileDialog openFileDialog new OpenFileDialog();openFileDialog.Filter *.xml|*.xml;openFileDialog.InitialDirectory GlobalSystemConfig.Instance.AppStartPath \AppConfigDir\;if (openFileDialog.ShowDialog() DialogResult.Cancel){return;}mapPanelDocker.OpenMap(openFileDialog.FileName);GlobalSystemConfig.Instance.AgvConfigPath openFileDialog.FileName;InitialTreeViewLayout();floydCurrent new FloydHelper();}#endregion#region 保存数据到xml文件private void bnt_保存_Click(object sender, EventArgs e){SaveFileDialog saveFileDialog new SaveFileDialog();saveFileDialog.Filter *.xml|*.xml;saveFileDialog.InitialDirectory GlobalSystemConfig.Instance.AppStartPath \AppConfigDir\;if (saveFileDialog.ShowDialog() DialogResult.Cancel){return;}mapPanelDocker.SaveMap(saveFileDialog.FileName);XmlHelper.WriteXmlFile.UpdateModifiedDate(saveFileDialog.FileName);floydCurrent new FloydHelper();}#endregion#region 上下左右private void btn_Left_Click(object sender, EventArgs e){this.mapPanelDocker.Focus();this.btn_Left.Enabled false;SendKeys.Send({LEFT});this.btn_Left.Enabled true;}private void btn_up_Click(object sender, EventArgs e){this.mapPanelDocker.Focus();this.btn_Left.Enabled false;SendKeys.Send({UP});this.btn_Left.Enabled true;}private void button4_Click(object sender, EventArgs e){this.mapPanelDocker.Focus();this.btn_Left.Enabled false;SendKeys.Send({DOWN});this.btn_Left.Enabled true;}private void btn_right_Click(object sender, EventArgs e){this.mapPanelDocker.Focus();this.btn_Left.Enabled false;SendKeys.Send({RIGHT});this.btn_Left.Enabled true;}#endregion#region 鼠标移入移出显示坐标private void mapPanelDocker_MouseMove(object sender, MouseEventArgs e){this.lbLocation.Text X: e.Location.X.ToString() 、Y: e.Location.Y.ToString();}private void mapPanelDocker_MouseLeave(object sender, EventArgs e){this.lbLocation.Text ;}#endregion#region treeView选中某一项时private void treeviewLayout_AfterSelect(object sender, TreeViewEventArgs e){TreeNode tn e.Node;if (tn ! null){if (tn.Text ! ){if (tn.Text.StartsWith(Path)){this.mapPanelDocker.AddSelectLine(tn.Text);}else if (tn.Text.StartsWith(Point)){this.mapPanelDocker.AddSelectStation(tn.Text);}else if (tn.Text.StartsWith(Block)){this.mapPanelDocker.AddSelectBlck(tn.Text);}}}}#endregion#region 添加或者删除一条路径到Block#region 添加private void addToolStripMenuItem_Click(object sender, EventArgs e){if (mapPanelDocker.SelectMapline ! null || mapPanelDocker.SelectMapBezierline ! null){string strBlockName this.treeviewLayout.SelectedNode.Text.Replace( , ).Replace(BlockBlock, Block);string lineName ;string BezierLineName ;if (mapPanelDocker.SelectMapline ! null){lineName mapPanelDocker.SelectMapline.LineName;}if (mapPanelDocker.SelectMapBezierline ! null){BezierLineName mapPanelDocker.SelectMapBezierline.LineName;}AGV_Block[] allBlocks ReadXmlFile.ReadAllBlock(GlobalSystemConfig.Instance.AgvConfigPath);for (int i 0; i allBlocks.Length; i){if (allBlocks[i].BlockName strBlockName){if (lineName ! ){if (!allBlocks[i].menbers.Contains(lineName)){if (allBlocks[i].menbers ){allBlocks[i].menbers lineName;}else{allBlocks[i].menbers allBlocks[i].menbers , lineName;}}}if (BezierLineName ! ){if (!allBlocks[i].menbers.Contains(BezierLineName)){if (allBlocks[i].menbers ){allBlocks[i].menbers BezierLineName;}else{allBlocks[i].menbers allBlocks[i].menbers , BezierLineName;}}}XmlHelper.WriteXmlFile.WriteOrCreateBlockValue(allBlocks[i], GlobalSystemConfig.Instance.AgvConfigPath);InitialTreeViewLayout();}}}}#endregion#region 移除private void deleteSelectPathToBlocksToolStripMenuItem_Click(object sender, EventArgs e){if (mapPanelDocker.SelectMapline ! null || mapPanelDocker.SelectMapBezierline ! null){string strBlockName this.treeviewLayout.SelectedNode.Text.Replace( , ).Replace(BlockBlock, Block);string lineName ;string BezierLineName ;if (mapPanelDocker.SelectMapline ! null){lineName mapPanelDocker.SelectMapline.LineName;}if (mapPanelDocker.SelectMapBezierline ! null){BezierLineName mapPanelDocker.SelectMapBezierline.LineName;}AGV_Block[] allBlocks ReadXmlFile.ReadAllBlock(GlobalSystemConfig.Instance.AgvConfigPath);for (int i 0; i allBlocks.Length; i){if (allBlocks[i].BlockName strBlockName){if (lineName ! ){if (allBlocks[i].menbers.Contains(lineName)){if (allBlocks[i].menbers lineName){allBlocks[i].menbers ;}else if (allBlocks[i].menbers.Contains(lineName ,)){allBlocks[i].menbers allBlocks[i].menbers.Replace(lineName ,, );}else{allBlocks[i].menbers allBlocks[i].menbers.Replace(lineName, );}}}if (BezierLineName ! ){if (allBlocks[i].menbers.Contains(BezierLineName)){if (allBlocks[i].menbers BezierLineName){allBlocks[i].menbers ;}else if (allBlocks[i].menbers.Contains(BezierLineName ,)){allBlocks[i].menbers allBlocks[i].menbers.Replace(BezierLineName ,, );}else{allBlocks[i].menbers allBlocks[i].menbers.Replace(BezierLineName, );}}}XmlHelper.WriteXmlFile.WriteOrCreateBlockValue(allBlocks[i], GlobalSystemConfig.Instance.AgvConfigPath);InitialTreeViewLayout();}}}}#endregion#region 删除整个块private void deleteEntileBlocksToolStripMenuItem_Click(object sender, EventArgs e){string strBlockName this.treeviewLayout.SelectedNode.Text.Replace( , ).Replace(BlockBlock, Block);if (strBlockName.StartsWith(Block)){if (mapPanelDocker.ListMapBlock ! null mapPanelDocker.ListMapBlock.Count 0){for (int i 0; i mapPanelDocker.ListMapBlock.Count; i){if (mapPanelDocker.ListMapBlock[i].BlockName strBlockName){mapPanelDocker.ListMapBlock.Remove(mapPanelDocker.ListMapBlock[i]);mapPanelDocker.SaveMap(GlobalSystemConfig.Instance.AgvConfigPath);InitialTreeViewLayout();}}}}}#endregion#endregion#region 右键菜单打开时private void menuBlock_Opening(object sender, CancelEventArgs e){}#endregion#region 点击进行选中当前节点private void treeviewLayout_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e){if (e.Button MouseButtons.Left || e.Button MouseButtons.Right){this.treeviewLayout.SelectedNode e.Node;}}#endregion#region 块点击事件private void btn_块_Click(object sender, EventArgs e){if (newType NodeType.Block){MapBlock block new MapBlock();block.OnColorChange mapPanelDocker.block_OnColorChange;block.BlockName Block- GetMaxBlockName();block.BlockColor Color.Red;block.menberLines new ListMapLine();block.menberBezierLines new ListMapBezierLine();block.isSlected true;mapPanelDocker.ListMapBlock.Add(block);mapPanelDocker.SaveMap(GlobalSystemConfig.Instance.AgvConfigPath);}InitialTreeViewLayout();}#endregion#region 双击查找路径或者站点private void treeviewLayout_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e){string whichText e.Node.Text.Replace( , );if (whichText.StartsWith(PointPoint) || whichText.StartsWith(PathPoint)){AGV_Line[] allLines XmlHelper.ReadXmlFile.ReadAllLine(GlobalSystemConfig.Instance.AgvConfigPath);if (whichText.StartsWith(PointPoint)){whichText whichText.Replace(PointPoint, Point).Replace(PathPoint, Point);//点foreach (Control item in mapPanelDocker.Controls){if(item.GetType()typeof(MapNode)){MapNode node (MapNode)item;if(node.NamewhichText){Graphics g mapPanelDocker.CreateGraphics();g.SmoothingMode SmoothingMode.HighQuality;Pen p new Pen(Color.Lime, 2);Point pointTemp new Point(node.Location.X - 25, node.Location.Y - 25);Size sizeTemp new Size(70, 70);g.DrawEllipse(p, pointTemp.X, pointTemp.Y, sizeTemp.Width, sizeTemp.Height);}}}}else{whichText whichText.Replace(PointPoint, Point).Replace(PathPoint, Point);//路径if (allLines ! null allLines.Length 0){for (int i 0; i allLines.Length; i){if (allLines[i].LineName whichText){AGV_Line agvLine allLines[i];Pen p new Pen(Color.Red, 2);Graphics g mapPanelDocker.CreateGraphics();g.SmoothingMode SmoothingMode.HighQuality;if (agvLine.controlPoint1.X ! 0){Point pointTemp new Point(((agvLine.controlPoint1.X agvLine.controlPoint2.X) / 2) - 20, ((agvLine.controlPoint1.Y agvLine.controlPoint2.Y) / 2) - 20);Size sizeTemp new Size(60, 60);g.DrawEllipse(p, pointTemp.X, pointTemp.Y, sizeTemp.Width, sizeTemp.Height);}else{Point pointTemp1 new Point(0,0);Point pointTemp2 new Point(0, 0);foreach (Control item in mapPanelDocker.Controls){if (item.GetType() typeof(MapNode)){MapNode node (MapNode)item;if (node.Name agvLine.StartControl){pointTemp1 node.Location;}if (node.Name agvLine.EndControl){pointTemp2 node.Location;}}}if (pointTemp1.X ! 0 pointTemp2.X ! 0){Point pointTemp new Point(((pointTemp1.X pointTemp2.X) / 2) - 20, ((pointTemp1.Y pointTemp2.Y) / 2) - 20);Size sizeTemp new Size(60, 60);g.DrawEllipse(p, pointTemp.X, pointTemp.Y, sizeTemp.Width, sizeTemp.Height);}}}}}}}}#endregion#region 新建一个地图文件private void btn_New_Click(object sender, EventArgs e){mapPanelDocker.OpenMap();GlobalSystemConfig.Instance.AgvConfigPath ;InitialTreeViewLayout();floydCurrent new FloydHelper();}#endregion#region 车点击事件private void btn_车_Click(object sender, EventArgs e){if (newType NodeType.Vehicle){MapBlock block new MapBlock();block.OnColorChange mapPanelDocker.block_OnColorChange;block.BlockName Vehicle- GetMaxBlockName();block.BlockColor Color.Red;block.menberLines new ListMapLine();block.menberBezierLines new ListMapBezierLine();block.isSlected true;mapPanelDocker.ListMapBlock.Add(block);mapPanelDocker.SaveMap(GlobalSystemConfig.Instance.AgvConfigPath);}InitialTreeViewLayout();}#endregion#region 双击时private void treeViewVehicle_AfterSelect(object sender, TreeViewEventArgs e){}#endregion#region 双击时将当前小车进行标定private void treeViewVehicle_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e){}#endregion#region 鼠标左键或者有键将当前节点选中private void treeViewVehicle_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e){if (e.Button MouseButtons.Left || e.Button MouseButtons.Right){this.treeViewVehicle.SelectedNode e.Node;}}#endregion#region 是否显示站点的labelbool showLabelFlag true;private void button2_Click(object sender, EventArgs e){if (showLabelFlag){this.btn_ShowLabel.BackColor Color.Transparent;showLabelFlag false;foreach (Control item in this.mapPanelDocker.Controls){if (item.GetType() typeof(Label)){item.Text ;}}}else{this.btn_ShowLabel.BackColor Color.Wheat;showLabelFlag true;foreach (Control item in this.mapPanelDocker.Controls){if (item.GetType() typeof(Label)){item.Text item.Name;}}}this.mapPanelDocker.Invalidate();}#endregion#region 是否显示块的背景颜色bool showBlockLine true;private void button1_Click(object sender, EventArgs e){if (showBlockLine){this.btn_ShowBlock.BackColor Color.Wheat;showBlockLine false;foreach (MapBlock item in this.mapPanelDocker.ListMapBlock){item.ShowBlockLineColor false;}}else{this.btn_ShowBlock.BackColor Color.Transparent;showBlockLine true;foreach (MapBlock item in this.mapPanelDocker.ListMapBlock){item.ShowBlockLineColor true;}}this.mapPanelDocker.Invalidate();}#endregionprivate void btn_查找小车_Click(object sender, EventArgs e){}#region 显示当前地图的版本信息private void showToolStripMenuItem_Click(object sender, EventArgs e){string filePath GlobalSystemConfig.Instance.AgvConfigPath;string StationNum, ParkingNum, DirectNum,BezierNum, FileName, BlockNum,VehicleNum, ModifyDate;ReadXmlFile.GetMapNodeNum(out StationNum, out ParkingNum, out DirectNum,out BezierNum, out FileName, out BlockNum,out VehicleNum, out ModifyDate, filePath);NumberModel model new NumberModel(){StationNum StationNum,ParkingStationnum ParkingNum,DirectLineNum DirectNum,BezierLineNum BezierNum,FileName FileName,BlockNum BlockNum,VehicleNum VehicleNum,ModifiedDate ModifyDate};frm_Property new frm_ModelProperty(model);frm_Property.ShowDialog();}#endregion
http://www.tj-hxxt.cn/news/222820.html

相关文章:

  • 网站后台管理系统模板htmlwordpress标签库
  • 网站建设步骤电脑专业网站建设电话
  • 高校思政主题网站建设的意义wordpress ajax分页
  • 派多格宠物网站建设土巴兔装修
  • 建设通网站信息有效吗水碓子网站建设
  • 能免费做微信群推广的网站wordpress付费阅读chajian
  • 做网站运营工作有前景吗做一个自己网站的步骤
  • 苏州保洁公司电话号码绍兴网站建设优化
  • 做网站什么用常德公司做网站
  • 银川市网页设计培训seo网络推广公司排名
  • 建设网站前期准备工作网站做过备案后能改别的公司吗
  • 上海中学门户网站登陆wordpress标签标题
  • 陕西省建设网官方网站最高法律网站是做啥的
  • 榆次做企业网站网络营销对企业的优势
  • 网页编辑与网站编辑搜索公司信息的网站
  • 衣服网站设计廊坊网站建设优化
  • 怎么做淘宝客的跳转网站wordpress如何关闭主题
  • 做网站开发语言百度快速排名案例
  • 水果套餐网站容桂网站制作动态
  • 临海市城市建设规划局网站wordpress首页显示一张图片
  • cms合肥seo排名收费
  • 开锁都在什么网站做wordpress主题预览
  • 外贸公司网站开发十堰网络推广平台
  • 最早做淘宝客的网站石家庄网站建设联系电话
  • 模板网站有利于优化家装公司网站建设方案
  • 网站设计技术方案浙江台州做网站的公司有哪些
  • 成都网站建设scyiyou昆明做网站多少钱
  • 外贸建站 台州提升学历
  • 张家港外贸型网站制作鹏翔科技 网站建设
  • 少儿编程网站凡客家装