17/01/2025 - SebastianoFloridia ha scritto:
Il codice funziona, ma legge sempre false.
Cosa sbaglio?
Ciao, per esempio puoi gestire l'evento in CellValueChanged in questo modo: (ma tutto dipende dallo scenario che hai)
YourDataGridView = nome della tua datagrdiview
YourColumnName = nome della colonna dove si trova la tua checkbox
private void YourDataGridView_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0)
{
if (e.ColumnIndex == YourDataGridView.Columns["YourColumnName"].Index)
{
MessageBox.Show("New state: " + (bool)YourDataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value);
}
}
}
Sempre per Esempio a questo punto puoi testare lo stato della checkbox ed eseguire le azioni che ritieni opportuno :
private void YourDataGridView_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
// check rows exists
if (e.RowIndex >= 0)
{
// check if the column changed
if (e.ColumnIndex == YourDataGridView.Columns["YourColumnName"].Index)
{
// check checkbox status
if ((bool)YourDataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value)
{
// perform the actions by state = true .....
MessageBox.Show("New state: True");
}
else
{
// perform the actions by state = false .....
MessageBox.Show("New state: False");
}
}
}
}
Quanto sopra solo un piccolo esempio usando un certo evento, ma come detto in precedenza tutto dipende dal tuo specifico scenario.