예제 #1
0
        public frmBlks()
        {
            InitializeComponent();

            //При запуске команды создаем класс коллекции блоков и наполняем список
            BlockUtils.DrawingBlocksCollection bc = new BlockUtils.DrawingBlocksCollection();
            FillList(bc.ListOfBlocks);
        }
예제 #2
0
        private void dgv1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            //Функция обрабатывает редактирование в ячейке таблицы
            try
            {
                //Создаем класс обработки блоков
                BlockUtils.DrawingBlocksCollection blkcollection = new BlockUtils.DrawingBlocksCollection();

                //Получаем таблицу данных из контрола dgv1
                System.Data.DataTable dt = dgv1.DataSource as System.Data.DataTable;

                if (dt != null)
                {
                    //Получаем ID редактируемого блока из контрола, преобразуем к типу ObjectId
                    ObjectId idEdited = (ObjectId)dgv1.Rows[e.RowIndex].Cells[BlockFieldNames.blockId].Value;

                    //Пробегаем по всем строчкам в таблице чтобы найти нужную
                    foreach (DataRow row in dt.Rows)
                    {
                        if (row != null && (ObjectId)row[BlockFieldNames.blockId] == idEdited)
                        {
                            //Создаем переменную, которая воспримет атрибуты блока из ячеек dgv1
                            BlockUtils.BlockProps bp = new BlockUtils.BlockProps();

                            //Назначаем соответствие атрибутов столбцам
                            bp.BlockId    = (ObjectId)row[BlockFieldNames.blockId];
                            bp.BlockName  = (string)row[BlockFieldNames.blockName];
                            bp.Explodable = (bool)row[BlockFieldNames.Explodable];
                            if ((bool)row[BlockFieldNames.UniformScale])
                            {
                                bp.UniformScale = BlockScaling.Uniform;
                            }

                            //Запускаем применение новых свойств в чертеже
                            blkcollection.SetBlockProperties(bp);
                        }
                    }
                }
            }
            catch (PlatformDb.Runtime.Exception ex)
            {
                //Если что-то сломалось, то в командную строку выводится ошибка
                Platform.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor
                .WriteMessage("Не могу отправить изменения - ошибка: " + ex.Message);
            };
        }