private void dgvMateriePrime_CellEndEdit(object sender, DataGridViewCellEventArgs e) { try { lblMessaggio.Text = string.Empty; if (_disabilitaEdit) { return; } decimal idMateriaPrima = (decimal)dgvMateriePrime.Rows[e.RowIndex].Cells[0].Value; string codice = (string)dgvMateriePrime.Rows[e.RowIndex].Cells[1].Value; string descrizione = (string)dgvMateriePrime.Rows[e.RowIndex].Cells[2].Value; string materiale = (string)dgvMateriePrime.Rows[e.RowIndex].Cells[3].Value; decimal margine = (decimal)dgvMateriePrime.Rows[e.RowIndex].Cells[4].Value; decimal costo = (decimal)dgvMateriePrime.Rows[e.RowIndex].Cells[5].Value; bool includiPreventivo = (bool)dgvMateriePrime.Rows[e.RowIndex].Cells[6].Value; decimal idMateriale = _materiali.Where(x => x.ToString() == materiale).FirstOrDefault().IdMateriale; if (string.IsNullOrEmpty(descrizione)) { lblMessaggio.Text = "La descrizone non può essere vuota"; return; } if (string.IsNullOrEmpty(codice)) { lblMessaggio.Text = "Il codice non può essere vuoto"; return; } Anagrafica a = new Anagrafica(); lblMessaggio.Text = a.ModificaMateriaPrima(idMateriaPrima, codice, descrizione, idMateriale, margine, costo, includiPreventivo, _utenteConnesso); BeginInvoke(new MethodInvoker(CaricaGrigliaMateriePrime)); } catch (Exception ex) { MostraEccezione("Errore modificando una fase", ex); } }