public void DblClickOnHoldRegItem(int nIndexOfList, int nSubIndex) { RegisterItem register = null; int nAddrIndex = (int)(nSubIndex / 3) * 3; uint uiAddr = 0; frm8BitsSetting.HexToUint(listView1.Items[nIndexOfList].SubItems[nAddrIndex].Text, ref uiAddr); if (_device._dicHoldRegs.ContainsKey((int)uiAddr)) { if ((nSubIndex % 3) == 2) //双击在数据上 { _bEditItem = true; _nEiditItemIndex = nIndexOfList; _nEditSubItemItem = nSubIndex; listView1.ShowTextBoxOnItem(nIndexOfList, nSubIndex); //timer1.Interval = 200; //timer1.Start(); } else { register = _device._dicHoldRegs[(int)uiAddr]; ShowChangeRegisterDlg(register, true); } } }
public void AddHoldRegister(RegisterItem register) { ListViewItem listItem = null; int nInsertIndex = -1; if (_nMaxHoldRegIndex >= 0) { nInsertIndex = _nMaxHoldRegIndex; } else if (_nMaxInputRegIndex >= 0) { nInsertIndex = _nMaxInputRegIndex; } else if (_nMaxSwitchIndex >= 0) { nInsertIndex = _nMaxSwitchIndex; } else if (_nMaxCoilIndex >= 0) { nInsertIndex = _nMaxCoilIndex; } if (nInsertIndex == -1 || _nSubIndexOfInputRegItem > 8 || _nMaxHoldRegIndex < 0) { listItem = new ListViewItem(); _nSubIndexOfHoldRegItem = 0; } else { listItem = this.Items[nInsertIndex]; } if (_nSubIndexOfHoldRegItem == 0) { listItem.SubItems[0].BackColor = aItemsHeadColor[(int)ListItemType.HoldRegister];; listItem.SubItems[0].Text = string.Format("{0:X4}", register._nStartAddr); listItem.SubItems.Add(register._strName); listItem.SubItems.Add(""); if (nInsertIndex == -1 || this.Items.Count == (nInsertIndex + 1)) { this.Items.Add(listItem); } else { this.Items.Insert(nInsertIndex + 1, listItem); } } else { listItem.SubItems.Add(string.Format("{0:X4}", register._nStartAddr)); listItem.SubItems.Add(register._strName); listItem.SubItems.Add(""); } listItem.UseItemStyleForSubItems = false; _nSubIndexOfHoldRegItem += 3; _nMaxHoldRegIndex = listItem.Index; }
public void ChangeRegister(bool bHoldReg, RegisterItem register) { int nIndexOfName = (int)(_nClickSubIndex / 3) * 3 + 1; if (listView1.Items[_nClickIndex].SubItems[nIndexOfName].Text != register._strName) { listView1.Items[_nClickIndex].SubItems[nIndexOfName].Text = register._strName; } }
public void ShowChangeRegisterDlg(RegisterItem register, bool bHoldReg) { frmRegisterSetting dlgRegisterSetting = new frmRegisterSetting(register); dlgRegisterSetting._bHoldRegister = bHoldReg; dlgRegisterSetting._bAddRegister = false; dlgRegisterSetting.SetRegister = new frmRegisterSetting.DelegateSetRegister(ChangeRegister); dlgRegisterSetting.ShowDialog(); }
public void AddInputRegister(RegisterItem register) { if (_dicInputRegs == null) { _dicInputRegs = new SerializableDictionary <int, RegisterItem>(); } _dicInputRegs.Add(register._nStartAddr, register); register._aData = new byte[register._nLength]; _bModified = true; }
public void AddReister(bool bHoldReg, RegisterItem register) { if (bHoldReg) { listView1.AddHoldRegister(register); } else { listView1.AddInputRegister(register); } }
public void DblClickOnInputRegItem(int nIndexOfList, int nSubIndex) { RegisterItem register = null; int nAddrIndex = (int)(nSubIndex / 3) * 3; uint uiAddr = 0; frm8BitsSetting.HexToUint(listView1.Items[nIndexOfList].SubItems[nAddrIndex].Text, ref uiAddr); if (_device._dicInputRegs.ContainsKey((int)uiAddr)) { register = _device._dicInputRegs[(int)uiAddr]; ShowChangeRegisterDlg(register, false); } }
public frmRegisterSetting(RegisterItem register) { InitializeComponent(); for (int nIndex = 0; nIndex < aType.Length; nIndex++) { comboBoxType.Items.Add(aType[nIndex]); } textBoxAddr.Text = string.Format("{0:X4}", register._nStartAddr); textBoxAddr.Enabled = false; textBoxName.Text = register._strName; comboBoxType.SelectedIndex = register._nType; textBoxUpperLimit.Text = register._strUpperLimit; textBoxLowerLimit.Text = register._strLowerLimit; textBoxCoefficient.Text = register._dCoefficient.ToString(); _register = register; }
private void buttonAdd_Click(object sender, EventArgs e) { if (textBoxAddr.Text == "" || textBoxName.Text == "" || comboBoxType.SelectedIndex == -1) { MessageBox.Show("寄存器地址、名称、类型不能为空!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } uint uiAddr = 0; if (!frm8BitsSetting.HexToUint(textBoxAddr.Text, ref uiAddr)) { MessageBox.Show("请输入正确的寄存器地址!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } try { Single sngCoefficient = Convert.ToSingle(textBoxCoefficient.Text); if (!_bHoldRegister) { string strErr = ""; if ((textBoxUpperLimit.Text != "" && !CheckValue(textBoxUpperLimit.Text, comboBoxType.SelectedIndex, sngCoefficient, ref strErr)) || (textBoxLowerLimit.Text != "" && !CheckValue(textBoxLowerLimit.Text, comboBoxType.SelectedIndex, sngCoefficient, ref strErr))) { MessageBox.Show(string.Format("请输入正确的门限值({0})!", strErr), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } if (_bAddRegister) { _register = new RegisterItem(); } _register._nStartAddr = (int)uiAddr; _register._strName = textBoxName.Text; _register._strUpperLimit = textBoxUpperLimit.Text; _register._strLowerLimit = textBoxLowerLimit.Text; _register._nLength = (int)numUpDownLength.Value; _register._dCoefficient = sngCoefficient; _register._nType = comboBoxType.SelectedIndex; if (_bAddRegister) { if ((_bHoldRegister && _device.CheckAddHoldRegAddr((int)uiAddr, _register._nLength)) || (!_bHoldRegister && _device.CheckAddInputRegAddr((int)uiAddr, _register._nLength))) { AddRegister(_bHoldRegister, _register); if (_bHoldRegister) { _device.AddHoldRegister(_register); } else { _device.AddInputRegister(_register); } } } else { SetRegister(_bHoldRegister, _register); Close(); } } catch (Exception ex) { MessageBox.Show(ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); } }