// изменение/удаление строки с данными по объекту public void ent_ModifEntityRow(object sender, EventArgs evtArgs) { PropertyDataList.setEventParentENT(); if (PropertyDataList.isEventParentENT()) { if (!(sender is BlockBegin) && !(sender is BlockEnd)) { Entity ent = sender as Entity; int row = this.FindIndex(o => o.ent == ent); if (!(sender as DBObject).IsErased) { if (row != -1) { this[row].Init(); } else { this.Add(new PropertyData(ref ent, ent_ModifEntityRow)); } } else { if (row != -1) { this.RemoveAt(row); } } UpdateDataGridView(); SelectRow(row, true); } } PropertyDataList.clearEventParentENT(); }
public void InitDataList() { Document doc = Application.DocumentManager.MdiActiveDocument; Editor ed = doc.Editor; Hashtable ud = doc.UserData; const string myKey = "PropertyDataList"; data = ud[myKey] as PropertyDataList; if (data == null) { object obj = ud[myKey]; if (obj == null) { // PropertyDataList не найден - первый запуск data = new PropertyDataList(); ud.Add(myKey, data); data.dataGridView = dataGridView; data.UpdateDataGridView(); } else { // Найден объект другого типа ed.WriteMessage("Найден объект типа \"" + obj.GetType().ToString() + "\" вместо PropertyDataList."); } } else //if (data != null) { data.Update(); } }
private void dataGridView_SelectionChanged(object sender, EventArgs e) { PropertyDataList.setEventParentDGV(); if (PropertyDataList.isEventParentDGV()) { data.SelectEntity(); } PropertyDataList.clearEventParentDGV(); }
// добавить строку с данными по объекту private void db_AddEntityRow(object sender, ObjectEventArgs e) { PropertyDataList.setEventParentENT(); //if (PropertyDataList.isEventParentENT()) { if ((e.DBObject is Entity) && !(e.DBObject is BlockBegin) && !(e.DBObject is BlockEnd) && (e.DBObject.OwnerId == db.CurrentSpaceId && !e.DBObject.IsErased && e.DBObject.ObjectId != ObjectId.Null)) { Entity ent = e.DBObject as Entity; ent.Modified += new EventHandler(ent_ModifEntityRow); } } /* * if (this.Find(o => o.Handle == ent.Handle.Value.ToString()) == null) * { * this.Add(new PropertyData(ref ent, ent_ModifEntityRow)); * UpdateDataGridView(); * SelectRow(-1, true); * } * } * } * PropertyDataList.clearEventParentENT();*/ }
// обработка изменения набора выбора объектов private void doc_EntitySelectionChanged(object sender, System.EventArgs e) { PropertyDataList.setEventParentENT(); if (PropertyDataList.isEventParentENT()) { PromptSelectionResult res = ((Document)sender).Editor.SelectImplied(); if (res != null && res.Value != null) { ObjectId[] ids = res.Value.GetObjectIds(); if (ids != null) { foreach (ObjectId objID in ids) { SelectEntityRow(objID.Handle.Value.ToString()); } } } else { dataGridView.ClearSelection(); } } PropertyDataList.clearEventParentENT(); }