private void tmrRestore_Tick(object sender, EventArgs e) { tmrRestore.Enabled = false; RFMDataGridView grd; if (tcList.CurrentPage.Name.ToUpper().Contains("TYPES")) { grd = grdCarsTypes; } else { grd = grdCars; } if (grd.CurrentRow == null) { return; } int rowIndex = grd.CurrentRow.Index; string sGrdName = grd.Name; if (grd.IsStatusRow(rowIndex)) { switch (sGrdName) { case "grdCars": oCarCur.ClearOne(); break; case "grdCarsTypes": oCarTypeCur.ClearOne(); break; } btnEdit.Enabled = btnArrange.Enabled = btnConfirm.Enabled = btnDelete.Enabled = btnPrint.Enabled = btnService.Enabled = false; } else { // заполнение объекта по текущей строке DataRow r = ((DataRowView)((DataGridViewRow)grd.Rows[rowIndex]).DataBoundItem).Row; switch (sGrdName) { case "grdCars": oCarCur.FillOne(r); tcCars.SetAllNeedRestore(true); break; case "grdCarsTypes": oCarTypeCur.FillOne(r); tcCarsTypes.SetAllNeedRestore(true); break; } // можно проверить какой-нибудь статус и в зависимости от него включить/выключить кнопки btnArrange.Enabled = btnConfirm.Enabled = btnDelete.Enabled = false; btnEdit.Enabled = btnPrint.Enabled = btnService.Enabled = true; } }