dataGridView1.CellBeginEdit += CellBeginEdit;
private void CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
{
DataGridView dgv = (DataGridView)sender;
if (dgv[0, e.RowIndex].Value == "2") # or whatever conditions you want to check
{
e.Cancel = true;
}
else
{
e.Cancel = false;
}
}