private void 添加简单圈选(F纯地图 __纯地图) { var __圈选 = new F圈选_圆形(__纯地图.地图); __圈选.圈选结束 += 处理圆形圈选; var __按钮 = new U按钮 { Top = 10, Left = 50, Text = "开始" }; __按钮.Click += (sender1, e1) => { if (__按钮.Text == "开始") { __按钮.Text = "结束"; __圈选.开始(); } else { __按钮.Text = "开始"; __圈选.结束(); __圈选.清除(); } }; __纯地图.Controls.Add(__按钮); __按钮.BringToFront(); }
private void 添加简单圈选(F地图 __地图) { var __圈选 = new F圈选_圆形(__地图); __圈选.圈选结束 += 处理圆形圈选; var __按钮 = new U按钮 { Width = 70, Top = 30, Left = _F显示号码.out地图容器.Width - 116, Anchor = AnchorStyles.Right | AnchorStyles.Top, Text = "开始圈选" }; __按钮.Click += (sender1, e1) => { if (__按钮.Text == "开始圈选") { __按钮.Text = "结束圈选"; __圈选.开始(); } else { __按钮.Text = "开始圈选"; __圈选.结束(); __圈选.清除(); } }; _F显示号码.out地图容器.Controls.Add(__按钮); __按钮.BringToFront(); }
void do测距_Click(object sender, EventArgs e) { var __纯地图 = new F纯地图(); var __测距 = new F测距(__纯地图.地图); var __按钮 = new U按钮 { Top = 10, Left = 50, Text = "开始" }; __按钮.Click += (sender1, e1) => { if (__按钮.Text == "开始") { __按钮.Text = "结束"; __测距.开始(); } else { __按钮.Text = "开始"; __测距.结束(); } }; __纯地图.Controls.Add(__按钮); __按钮.BringToFront(); var __空窗口 = new F空窗口(__纯地图, "测距"); __空窗口.ShowDialog(); __空窗口.Dispose(); }
protected override void OnLoad(EventArgs e) { base.OnLoad(e); this.out标题.Text = _设备列表[0].分组; this.out容器.Controls.Clear(); _设备列表.ForEach(__设备 => { var __按钮 = new U按钮 { 大小 = new Size(170, 26), Tag = __设备, ContextMenuStrip = this.contextMenuStrip1, Text = __设备.设备标识, 颜色 = Color.Gray }; __按钮.Click += 设备_Click; var __提示 = new StringBuilder(); __提示 .AppendFormat("IP: {0}", __设备.IP).AppendLine() .AppendFormat("端口号: {0}", __设备.端口号).AppendLine(); this.toolTip1.SetToolTip(__按钮, __提示.ToString()); this.out容器.Controls.Add(__按钮); __设备.访问入口 = FT通用访问工厂.创建客户端(); __设备.访问入口.自动重连 = true; __设备.访问入口.已连接 += () => 访问入口_已连接(__设备, __按钮); __设备.访问入口.已断开 += q => 访问入口_已断开(__设备, __按钮); ThreadPool.QueueUserWorkItem((arg => { __设备.访问入口.连接(new IPEndPoint(__设备.IP, __设备.端口号)); })); }); this.do编辑设备.Click += do编辑设备_Click; }
void _IB状态_健康状态变化(M设备 __设备, U按钮 __按钮, M概要状态 __概要状态) { if (this.InvokeRequired) { this.BeginInvoke(new Action <M设备, U按钮, M概要状态>(_IB状态_健康状态变化), __设备, __按钮, __概要状态); return; } __设备.概要状态 = __概要状态; __按钮.Text = string.Format("{0}({1})", __设备.设备标识, __设备.概要状态.未清除告警数量); switch (__概要状态.健康状态) { case E健康状态.优: __按钮.颜色 = Color.YellowGreen; break; case E健康状态.良: __按钮.颜色 = Color.FromArgb(38, 164, 221); break; case E健康状态.中: __按钮.颜色 = Color.Orange; break; case E健康状态.差: __按钮.颜色 = Color.Red; break; default: throw new ArgumentOutOfRangeException(); } }
void 访问入口_已断开(M设备 __设备, U按钮 __按钮) { if (this.InvokeRequired) { this.BeginInvoke(new Action <M设备, U按钮>(访问入口_已断开), __设备, __按钮); return; } __按钮.颜色 = Color.Gray; }
void 访问入口_已连接(M设备 __设备, U按钮 __按钮) { if (this.InvokeRequired) { this.BeginInvoke(new Action <M设备, U按钮>(访问入口_已连接), __设备, __按钮); return; } if (__设备.片 == null) { var __IB名片 = new B名片_C(__设备.访问入口); var __IB状态 = new B状态_C(__设备.访问入口); __IB状态.健康状态变化 += q => _IB状态_健康状态变化(__设备, __按钮, q); var __任务 = new Task(() => { Let.Us.Retry(10000, 100, null, null).Do(() => { __设备.片 = __IB名片.片; __设备.概要状态 = __IB状态.查询概要状态(); }); }); __任务.ContinueWith(task => { var __提示 = new StringBuilder(); __提示 .AppendFormat("IP: {0}", __设备.IP).AppendLine() .AppendFormat("端口号: {0}", __设备.端口号).AppendLine() .AppendFormat("版本号: {0}", __设备.片 == null ? "" : __设备.片.版本号).AppendLine() .AppendFormat("版本时间: {0}", __设备.片 == null ? "" : __设备.片.版本时间).AppendLine(); this.toolTip1.SetToolTip(__按钮, __提示.ToString()); _IB状态_健康状态变化(__设备, __按钮, __设备.概要状态); }, CancellationToken.None, TaskContinuationOptions.OnlyOnRanToCompletion, TaskScheduler.FromCurrentSynchronizationContext()); __任务.ContinueWith(task => { task.Exception.Handle(q => true); }, CancellationToken.None, TaskContinuationOptions.OnlyOnFaulted, TaskScheduler.FromCurrentSynchronizationContext()); __任务.Start(); } }