Comment faire pour désactiver (lecture seule)d'une cellule dans un DataGridView colonne de cases à cocher en fonction de la valeur dans les autres cellules?
J'ai trouvé beaucoup de semblables questions et réponses, mais aucun de m'aider à résoudre mon problème.
Veuillez trouver mon dataGridView ci-dessous,
Ce que je veux faire est de désactiver la case à cocher si l' nom cellule est vide au moment de l'exécution.
J'ai essayé de mai méthodes, mais tout le temps la cellule est désactivé(lecture seule) après je l'ai vérifié.
MODIFIER
J'ai essayé quelque chose comme ça,
private void sendDGV_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (sendDGV.CurrentRow.Cells[1].Value != null)
{
sendDGV.CurrentRow.Cells[2].ReadOnly = false;
sendDGV.Update();
}
else
{
sendDGV.CurrentRow.Cells[2].ReadOnly = true;
sendDGV.Update();
}
}
Qu'avez-vous essayer? Le moyen le plus facile à utiliser jquery
ressemble à un formulaire de demande, pas d'une application web.
le mien est un formulaire de demande
ressemble à un formulaire de demande, pas d'une application web.
le mien est un formulaire de demande
OriginalL'auteur Jake | 2013-09-04
Vous devez vous connecter pour publier un commentaire.
Pour gérer les changements dans la colonne nom, vous pouvez utiliser le
DataGridView.CellValueChanged
événement. Lee
paramètre vous donne accès à:columnIndex
de la propriété, de sorte que vous pouvez tester si la modification est effectuée sur la nom colonne (indice 1).rowIndex
de la propriété, de sorte que vous récupérer les concernés de ligne et de changer les valeurs que vous voulez.MODIFIER
Que quelqu'un d'autre a noté que, pour avoir la
checkbox
désactivé pour les nouvelles lignes ajoutées (surtout si leAllowUserToAddRow
propriété est définie àtrue
), vous pouvez gérer leRowAdded
événement:OriginalL'auteur Chris
Vous pouvez utiliser DataGridView.CellValueChanged événement:
Mais pour avoir la case à cocher désactivée au premier abord, assurez-vous de définir la colonne pour être En lecture seule à l'aide de la designer et également, dans le DataGridView.RowsAdded cas, activez la case à cocher de la propriété ReadOnly = true pour une nouvelle ligne:
RowAdded
. J'ai manqué à ce point.Merci Flavia. Mais quand j'ai essayé cet exemple, j'ai eu nulle exception référence à la seconde " si de l'état. Alors je l'ai modifié pour quelque chose comme ci-dessous
if (e.ColumnIndex == 1 && dataGridView1[1, e.RowIndex].Value != null)
et il fonctionne bien maintenant.OriginalL'auteur Flavia Obreja
Simple, il y est intégré lecture seule propriété dans Visual Studio, le marquer comme vrai
OriginalL'auteur Mohamed Yunus
Assez vieux thread mais je pense que vous pouvez utiliser CellBeginEdit événement et d'Annuler l'événement sur votre état de santé. Il n'est pas désactiver la colonne, il est plutôt annuler la modication de la colonne souhaitée valeur.
1) abonnez-vous pour l'événement:
2) gestionnaire d'événement:
J'ai utilisé de l'événement pour obtenir un inclusive case.
Cela signifie que pour un seul des trois colonnes("Aucun", "Lire", "Plein") peut être "vrai"
OriginalL'auteur Vojta