/// <summary> /// 删除选中行 /// </summary> private void DeleteAddress() { var rList = new List <MgGroupAddress>(); foreach (var item in this.MgAddressList) { if (item.IsSelected) { rList.Add(item); } } foreach (var item in rList) { this.MgAddressList.Remove(item); this.Changed = true; } for (int i = this.dgvGroupAddress.Rows.Count - 1; i > -1; i--) { MgGroupAddress disAddress = this.dgvGroupAddress.Rows[i].DataBoundItem as MgGroupAddress; if (disAddress.IsSelected) { this.dgvGroupAddress.Rows.RemoveAt(i); this.Changed = true; } } }
private void LoadAllAddress() { addressList.Clear(); foreach (var it in MyCache.GroupAddressTable) { var temp = new MgGroupAddress(it); addressList.Add(temp); } refreshDataTable(); }
private void FrmGroupAddressPick_Load(object sender, EventArgs e) { foreach (EdGroupAddress address in MyCache.GroupAddressTable) { var temp = new MgGroupAddress(address); this.MgAddressList.Add(temp); if ((null != SelectedAddress) && (SelectedAddress.ContainsKey(address.Id))) { temp.IsSelected = true; temp.DefaultValue = SelectedAddress[address.Id].DefaultValue; } } LoadAllAddress(); }
public FrmGroupAddressMgt() { InitializeComponent(); foreach (EdGroupAddress address in MyCache.GroupAddressTable) { var temp = new MgGroupAddress(address); this.MgAddressList.Add(temp); } this.cbbFilterType.Items.Insert((int)FilterType.Name, UIResMang.GetString("Name")); this.cbbFilterType.Items.Insert((int)FilterType.GroupAddress, UIResMang.GetString("GroupAddress")); this.cbbFilterType.SelectedIndex = (int)FilterType.Name; foreach (var it in Enum.GetNames(typeof(KNXPriority))) { this.cbbPriority.Items.Add(it); } this.cbbPriority.Visible = false; this.cbbPriority.SelectedIndexChanged += new System.EventHandler(this.cbbDataType_SelectedIndexChanged); this.dgvGroupAddress.Controls.Add(this.cbbPriority); }
private void SearchAddress() { //_search = true; string searchText = this.txtSearch.Text.Trim(); if (!string.IsNullOrWhiteSpace(searchText)) { addressList.Clear(); var filterAddress = from i in MyCache.GroupAddressTable where i.Name.IndexOf(searchText, StringComparison.OrdinalIgnoreCase) != -1 select i; foreach (var it in filterAddress) { var temp = new MgGroupAddress(it); addressList.Add(temp); } refreshDataTable(); } }
/// <summary> /// 删除选中行 /// </summary> private void DeleteAddress() { for (int i = this.dgvGroupAddress.Rows.Count - 1; i > -1; i--) { MgGroupAddress disAddress = this.dgvGroupAddress.Rows[i].DataBoundItem as MgGroupAddress; if (disAddress.IsSelected) { addressList.Remove(disAddress); this.dgvGroupAddress.Rows.RemoveAt(i); foreach (EdGroupAddress address in MyCache.GroupAddressTable) { if (address.Id == disAddress.Id) { MyCache.GroupAddressTable.Remove(address); this.Changed = true; break; } } } } }
/// <summary> /// 修改组地址信息 /// </summary> private void ModifyAddress() { if (this.dgvGroupAddress.SelectedRows.Count > 0) { int rowIndex = this.dgvGroupAddress.SelectedRows[0].Cells[0].RowIndex; var item = this.dgvGroupAddress.SelectedRows[0].DataBoundItem as MgGroupAddress; EdGroupAddress address = MyCache.GetGroupAddress(item.Id); if (null != address) { FrmGroupAddress frm = new FrmGroupAddress(DataStatus.Modify); frm.Address = address; var dlgResult = frm.ShowDialog(this); if (dlgResult == DialogResult.OK) { /* 刷新修改的行 */ MgGroupAddress disAddress = new MgGroupAddress(frm.Address); this.dgvGroupAddress.Rows[rowIndex].Cells[1].Value = disAddress.Id; this.dgvGroupAddress.Rows[rowIndex].Cells[2].Value = disAddress.Name; this.dgvGroupAddress.Rows[rowIndex].Cells[3].Value = disAddress.KnxAddress; this.dgvGroupAddress.Rows[rowIndex].Cells[4].Value = disAddress.DPTName; this.dgvGroupAddress.Rows[rowIndex].Cells[5].Value = disAddress.IsCommunication; this.dgvGroupAddress.Rows[rowIndex].Cells[6].Value = disAddress.IsRead; this.dgvGroupAddress.Rows[rowIndex].Cells[7].Value = disAddress.IsWrite; this.dgvGroupAddress.Rows[rowIndex].Cells[8].Value = disAddress.IsTransmit; this.dgvGroupAddress.Rows[rowIndex].Cells[9].Value = disAddress.IsUpgrade; this.dgvGroupAddress.Rows[rowIndex].Cells[10].Value = disAddress.Priority; this.dgvGroupAddress.Rows[rowIndex].Cells[11].Value = disAddress.DefaultValue; this.dgvGroupAddress.Rows[rowIndex].Cells[12].Value = disAddress.ReadTimeSpan; this.dgvGroupAddress.EndEdit(); //Changed = true; } } } }
private void backWorkerSave_DoWork(object sender, DoWorkEventArgs e) { BackgroundWorker worker = sender as BackgroundWorker; //int len = this.dataGridView.RowCount; //for (int i = 0; i < len; i++) int len = listAddress.Count; for (int i = 0; i < len; i++) { float f = (float)i / (len - 1); worker.ReportProgress((int)(f * 100)); //DataGridViewRow row = this.dataGridView.Rows[i]; //bool isSelected = (bool)row.Cells["IsSelected"].Value; //if (isSelected) //{ // EdGroupAddress addr = new EdGroupAddress(); // addr.Id = row.Cells["Id"].Value as string; // addr.Name = row.Cells["Name"].Value as string; // addr.KnxAddress = row.Cells["KnxAddress"].Value as string; // addr.DPTName = row.Cells["DPTName"].Value as string; // DatapointType dpt = DPTHelper.GetTypeNode(addr.DPTName); // if (null != dpt) // { // addr.KnxMainNumber = dpt.KNXMainNumber; // addr.KnxSubNumber = dpt.KNXSubNumber; // addr.Type = dpt.Type; // } // addr.IsCommunication = (bool)row.Cells["IsCommunication"].Value; // addr.IsRead = (bool)row.Cells["IsRead"].Value; // addr.IsWrite = (bool)row.Cells["IsWrite"].Value; // addr.IsTransmit = (bool)row.Cells["IsTransmit"].Value; // addr.IsUpgrade = (bool)row.Cells["IsUpgrade"].Value; // addr.Priority = (KNXPriority)row.Cells["Priority"].Value; // addr.Actions = DPTHelper.GetActionNodes(addr.DPTName); // MyCache.GroupAddressTable.Add(addr); //} ImGroupAddr imAddr = listAddress[i]; if (imAddr.IsSelected) { MgGroupAddress addr = new MgGroupAddress(); addr.Id = imAddr.Id; addr.Name = imAddr.Name; addr.KnxAddress = imAddr.KnxAddress; addr.DPTName = imAddr.DPTName; DatapointType dpt = DPTHelper.GetTypeNode(imAddr.DPTName); if (null != dpt) { addr.KnxMainNumber = dpt.KNXMainNumber; addr.KnxSubNumber = dpt.KNXSubNumber; addr.Type = dpt.Type; } addr.IsCommunication = imAddr.IsCommunication; addr.IsRead = imAddr.IsRead; addr.IsWrite = imAddr.IsWrite; addr.IsTransmit = imAddr.IsTransmit; addr.IsUpgrade = imAddr.IsUpgrade; addr.Priority = imAddr.Priority; //addr.Actions = DPTHelper.GetActionNodes(addr.DPTName); addr.Actions = new GroupAddressActions(DPTHelper.GetActionNodes(addr.DPTName)); //MyCache.GroupAddressTable.Add(addr); var formName = typeof(FrmGroupAddressMgt).Name; if (Application.OpenForms[formName] != null) { var frm = Application.OpenForms[formName] as FrmGroupAddressMgt; if (frm != null) { frm.AddMgAddress(addr); } } } } }
public void AddMgAddress(MgGroupAddress addr) { this.MgAddressList.Add(addr); }
private void dgvGroupAddress_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) { int rowIndex = e.RowIndex; int colIndex = e.ColumnIndex; if (rowIndex >= 0) { if (15 == colIndex) { string Id = this.dgvGroupAddress.Rows[rowIndex].Cells["Id"].Value as string; EdGroupAddress addr = MgGroupAddress.GetGroupAddress(this.MgAddressList, Id); if ((null != addr) && (null != addr.Actions)) { //画单元格的边界线 Point p1 = new Point(e.CellBounds.Left + e.CellBounds.Width, e.CellBounds.Top); Point p2 = new Point(e.CellBounds.Left + e.CellBounds.Width, e.CellBounds.Top + e.CellBounds.Height); Point p3 = new Point(e.CellBounds.Left, e.CellBounds.Top + e.CellBounds.Height); Point[] ps = new Point[] { p1, p2, p3 }; using (Brush gridBrush = new SolidBrush(this.dgvGroupAddress.GridColor)) { using (Pen gridLinePen = new Pen(gridBrush, 2)) { Font font = new Font("宋体", 9, FontStyle.Regular);//自定义字体 string actions = addr.Actions.ToString(); //判断当前行是否为选中行,如果为选中行,则要修改图片的背景色和文字的字体颜色 if ((null != this.dgvGroupAddress.CurrentRow) && (this.dgvGroupAddress.CurrentRow.Index == e.RowIndex)) { using (Brush backColorBrush = new SolidBrush(Color.FromArgb(051, 153, 255))) { //以背景色填充单元格 e.Graphics.FillRectangle(backColorBrush, e.CellBounds); e.Graphics.DrawLines(gridLinePen, ps); SizeF sizeText = e.Graphics.MeasureString(actions, font); e.Graphics.DrawString(actions, font, Brushes.White, new RectangleF(e.CellBounds.Left, e.CellBounds.Top + (e.CellBounds.Height - sizeText.Height) / 2, e.CellBounds.Width, sizeText.Height), StringFormat.GenericDefault); e.Handled = true; } } else { using (Brush backColorBrush = new SolidBrush(e.CellStyle.BackColor)) { e.Graphics.FillRectangle(backColorBrush, e.CellBounds); e.Graphics.DrawLines(gridLinePen, ps); SizeF sizeText = e.Graphics.MeasureString(actions, e.CellStyle.Font); e.Graphics.DrawString(actions, e.CellStyle.Font, Brushes.Blue, new RectangleF(e.CellBounds.Left, e.CellBounds.Top + (e.CellBounds.Height - sizeText.Height) / 2, e.CellBounds.Width, sizeText.Height), StringFormat.GenericDefault); e.Handled = true; } } } } } } } }