You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

145 lines
5.0 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Mesnac.Equips.BaseInfo;
namespace Mesnac.Equips.SetConfig.DataConfig
{
public partial class NewGroupForm : Form
{
private bool isNew = true;
private ConfigEquipFactory configEquipFactory = null;
public NewGroupForm(ConfigEquipFactory configEquipFactory, bool isNew)
{
this.isNew = isNew;
this.configEquipFactory = configEquipFactory;
InitializeComponent();
}
private void NewGroupForm_Shown(object sender, EventArgs e)
{
IniDefault();
}
private void IniDefault()
{
if (isNew || configEquipFactory.CurrentGroup == null)
{
int i = 0;
while (true)
{
i++;
this.textBox1.Text = "B" + i.ToString();
if (!SameGroupName(this.textBox1.Text))
{
break;
}
}
this.textBox2.Text = string.Empty;
this.textBox3.Text = "0";
this.textBox4.Text = "10";
this.comboBox1.Text = "ReadWrite";
this.textBox6.Text = string.Empty;
this.checkBox1.Checked = true;
}
else
{
this.textBox1.Text = configEquipFactory.CurrentGroup.Name.ToString();
this.textBox2.Text = configEquipFactory.CurrentGroup.Block.ToString();
this.textBox3.Text = configEquipFactory.CurrentGroup.Start.ToString();
this.textBox4.Text = configEquipFactory.CurrentGroup.Len.ToString();
this.comboBox1.Text = configEquipFactory.CurrentGroup.Access.ToString();
this.textBox6.Text = configEquipFactory.CurrentGroup.Remark.ToString();
this.checkBox1.Checked = configEquipFactory.CurrentGroup.IsAutoRead;
}
}
#region 数据保存
private bool SameGroupName(string name)
{
foreach (Group group in this.configEquipFactory.CurrentEquip.Group.Values)
{
if (group.Name.Equals(name))
{
if (isNew)
{
return true;
}
else
{
if (group.Name != this.configEquipFactory.CurrentGroup.Name)
{
return true;
}
}
}
}
return false;
}
private void button1_Click(object sender, EventArgs e)
{
int int_start = 0;
if (!int.TryParse(this.textBox3.Text, out int_start))
{
MessageBox.Show("请设置正确的起始位!");
return;
}
if (int_start < 0)
{
MessageBox.Show("起始位必须大于等于0");
return;
}
int int_len = 0;
if (!int.TryParse(this.textBox4.Text, out int_len))
{
MessageBox.Show("请设置正确的长度!");
return;
}
if (int_len <= 0)
{
MessageBox.Show("长度必须大于0");
return;
}
if (SameGroupName(this.textBox1.Text))
{
MessageBox.Show("设备名称重复!");
return;
}
if (this.isNew)
{
configEquipFactory.CurrentGroup = new Group();
}
else
{
configEquipFactory.CurrentEquip.Group.Remove(configEquipFactory.CurrentGroup.Name);
}
configEquipFactory.CurrentGroup.Name = this.textBox1.Text;
configEquipFactory.CurrentGroup.Block = this.textBox2.Text;
configEquipFactory.CurrentGroup.Start = int_start;
configEquipFactory.CurrentGroup.Len = int_len;
configEquipFactory.CurrentGroup.IsAutoRead = this.checkBox1.Checked;
configEquipFactory.CurrentGroup.Access = (System.IO.FileAccess)(this.comboBox1.SelectedIndex + 1);
configEquipFactory.CurrentGroup.Remark = this.textBox6.Text;
configEquipFactory.CurrentEquip.Group.Add(configEquipFactory.CurrentGroup.Name, configEquipFactory.CurrentGroup);
this.DialogResult = System.Windows.Forms.DialogResult.OK;
this.Close();
}
#endregion
private void textBox_Int_KeyPress(object sender, KeyPressEventArgs e)
{
//判断按键是不是要输入的类型。
if (((int)e.KeyChar < 48 || (int)e.KeyChar > 57) && (int)e.KeyChar != 8 && (int)e.KeyChar != 46)
{
e.Handled = true;
}
}
}
}