Ciao Domenico!
ho visionato il tuo file e ho fatto le correzioni necessarie, lo trovi al link seguente:
https://www.mediafire.com/file/6jfjevx18uzl5bf/Prova_Final.zip/file
Ti spiego anche velocemente cosa ho fatto:
- Ho spostato la creazione e riempimento del datagrid all'inizializzazioen del form.
- creato due pulsanti, uno per il check di un intera riga ( per vedere se un campo di quella riga è vuoto) e uno per il check della singola cella selezionata.
Il codice di prima ti diceva che la cella è sempre piena anzichè vuota perchè la condizione nel codice controllava una cella specifica
if (string.IsNullOrEmpty(dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[1].Value as string))
{
MessageBox.Show("Il campo è vuoto");
return;
}
dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[1].Value -> indica il valore all'interno della prima cella nella riga attualmente selezionata.
Avendo messo il controllo sul pulsante OK , subito dopo la creazione della tabella, automaticamente veniva selezionata la prima riga e quindi automaticamente controllava sempre la prima cella ( in realtà la seconda in quanto in base zero).
per verificare se la cella è piena o vuota ho usato il codice seguente
var myValue = DataGridView.CurrentCell.Value as string;
if (string.IsNullOrWhiteSpace(myValue as string))
{
MessageBox.Show("La cella selezionata è vuota");
}
else
{
MessageBox.Show(myValue as string);
}
DataGridView.CurrentCell -> per verificare solo la cella attualmente selezionata.
Se voglio controllare tutta la riga nella sua interezza, il codice seguente
var contatoreNumeroColonna = 0;
foreach (DataGridViewTextBoxCell cell in DataGridView.Rows[DataGridView.CurrentCell.RowIndex].Cells)
{
if (string.IsNullOrWhiteSpace(cell.Value as string))
{
MessageBox.Show($"La riga selezionata ha il campo {DataGridView.Columns[contatoreNumeroColonna].HeaderText} vuoto");
return;
}
contatoreNumeroColonna++;
}
MessageBox.Show("La riga selezionata ha tutti i campi compilati");
Fammi sapere se ti è di aiuto!
Maurizio