FixtureSizeConfigControl.cs
3.9 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
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DeviceLibrary
{
public partial class FixtureSizeConfigControl : UserControl
{
public FixtureSizeConfigControl()
{
InitializeComponent();
}
private void FixtureSizeConfigControl_Load(object sender, EventArgs e)
{
RefreshList();
}
void RefreshList() {
listBox1.Items.Clear();
FixtureConfig.FixtureConfigList.ForEach(fc =>
{
listBox1.Items.Add(fc);
});
}
private void button1_Click(object sender, EventArgs e)
{
if (string.IsNullOrWhiteSpace(textBox_startcode.Text))
{
MessageBox.Show("条码首字母不能为空");
return;
}
FixtureConfig fixtureConfig = new FixtureConfig();
fixtureConfig.StartCode = textBox_startcode.Text.Trim();
fixtureConfig.Width = (int)num_width.Value;
fixtureConfig.Height = (int)num_height.Value;
fixtureConfig.UseActualHeight = checkBox_fixtureheight.Checked;
fixtureConfig.ActualHeight = (int)num_actualheight.Value;
fixtureConfig.AbandonCode = checkBox_useedremove.Checked;
FixtureConfig.Add(fixtureConfig);
RefreshList();
}
private void button2_Click(object sender, EventArgs e)
{
if (listBox1.SelectedIndex < 0) {
return;
}
var fc = (FixtureConfig)listBox1.SelectedItem;
FixtureConfig.Del(fc);
RefreshList();
}
}
public class FixtureConfig {
public string StartCode;
public int Width;
public int Height;
public bool UseActualHeight;
public int ActualHeight;
public bool AbandonCode;
public override string ToString()
{
return $"[{StartCode}]={Width}x{Height}"+ (UseActualHeight?$", "+"物理厚度"+$":{ActualHeight}":"") + (AbandonCode? ", "+"自动弃用" : "");
}
public static bool GetFixtureHeight(int poswidth,int posheight, out int FixtureHeight) {
FixtureHeight = 0;
var fcc = FixtureConfigList.Find(fc => fc.Width == poswidth && fc.Height == posheight);
if (fcc == null)
return false;
if (!fcc.UseActualHeight)
return false;
FixtureHeight = fcc.ActualHeight;
return true;
}
public static List<FixtureConfig> FixtureConfigList = new List<FixtureConfig>();
static FixtureConfig() {
if (!File.Exists("Config\\FixtureConfig.json"))
return;
try {
var fx = File.ReadAllText("Config\\FixtureConfig.json");
FixtureConfigList = JsonConvert.DeserializeObject<List<FixtureConfig>>(fx);
} catch { }
}
public static void Add(FixtureConfig fixtureConfig) {
var fcc = FixtureConfigList.FindIndex(fc => fc.StartCode == fixtureConfig.StartCode);
if (fcc <0)
FixtureConfigList.Add(fixtureConfig);
else
FixtureConfigList[fcc] = fixtureConfig;
Save();
}
public static void Del(FixtureConfig fixtureConfig) {
var fcc = FixtureConfigList.FindIndex(fc => fc.StartCode == fixtureConfig.StartCode);
if (fcc < 0)
return;
else
FixtureConfigList.RemoveAt(fcc);
Save();
}
public static void Save() {
File.WriteAllText("Config\\FixtureConfig.json", JsonConvert.SerializeObject(FixtureConfigList));
}
}
}