DeviceControl.cs
4.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
using DeviceLibrary;
using OnlineStore;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TheMachine
{
public partial class DeviceControl<T1> : UserControl where T1: UserControl, Idevicetab,new()
{
public DeviceControl()
{
InitializeComponent();
}
private void Crc_LanguageChangeEvent(object sender, EventArgs e)
{
stateView.Columns[1].Text = crc.GetString("Res0198", "模块");
stateView.Columns[2].Text = crc.GetString("Res0199", "步骤");
stateView.Columns[3].Text = crc.GetString("Form1_tabc_tabP1_Text", "信息");
}
List<T1> hYControls = new List<T1>();
List<MoveInfo> MoveInfos = new List<MoveInfo>();
public string DeviceName = "";
public void Init(string devicegroup,string prefixfilter="") {
//tabControl1.TabPages.Clear();
foreach (var dg in RobotManage.DeviceGroup.Values) {
if (dg.DeviceType != devicegroup)
continue;
if (!string.IsNullOrEmpty(prefixfilter))
{
if (!dg.GroupName.StartsWith(prefixfilter))
continue;
}
if (string.IsNullOrEmpty(DeviceName))
DeviceName = dg.Name;
MoveInfos.AddRange(MoveInfo.List.FindAll(m => m.Name.StartsWith(dg.GroupName)));
var hy = new T1();
hy.Init(dg.GroupName);
hYControls.Add(hy);
AddForm(dg.GroupName, dg.GroupName, hy);
}
#region 状态信息listview初始化
stateView.View = View.Details;
ColumnHeader c1 = new ColumnHeader();
c1.Text = "";
c1.Width = 0;
ColumnHeader c2 = new ColumnHeader();
c2.Text = crc.GetString("Res0198", "模块");
c2.Width = 120;
ColumnHeader c3 = new ColumnHeader();
c3.Text = crc.GetString("Res0199", "步骤");
c3.Width = 120;
ColumnHeader c4 = new ColumnHeader();
c4.Text = crc.GetString("Form1_tabc_tabP1_Text", "信息");
c4.Width = 470;
stateView.Columns.Add(c1);
stateView.Columns.Add(c2);
stateView.Columns.Add(c3);
stateView.Columns.Add(c4);
#endregion
timer1.Start();
crc.LanguageChangeEvent += Crc_LanguageChangeEvent;
}
public void AddForm(string id, string text, UserControl form)
{
foreach (TabPage tp in tabControl1.TabPages)
{
if (tp.Name == id)
{
tp.Text = text;
return;
}
}
TabPage lineTabPage = new TabPage(text);
lineTabPage.Name = id;
Panel linePan = new Panel();
linePan.Dock = DockStyle.Fill;
linePan.AutoScroll = true;
lineTabPage.Controls.Add(linePan);
linePan.Controls.Add(form);
form.Dock = DockStyle.Fill;
linePan.Anchor = ((AnchorStyles)((AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom | AnchorStyles.Left)));
form.Anchor = ((AnchorStyles)((AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom | AnchorStyles.Left)));
form.Show();
tabControl1.TabPages.Add(lineTabPage);
}
void SetState(List<MoveInfo> moveInfoList)
{
if (RobotManage.mainMachine == null)
return;
this.SuspendLayout();
stateView.Items.Clear();
foreach (MoveInfo moveInfo in moveInfoList)
{
ListViewItem lvi = new ListViewItem(new string[] { "", moveInfo.Name, moveInfo.MoveStep.ToString(), moveInfo.GetStateStr() });
stateView.Items.Add(lvi);
}
this.ResumeLayout(true);
}
private void timer1_Tick(object sender, EventArgs e)
{
if (Visible)
SetState(MoveInfos);
}
}
}