Désactivation du bouton de la colonne dans le datagridview
j'ai données gridview avec 4 colonnes 2 premières colonnes sont combobox colonnes, la troisième colonne est la zone de texte de la colonne et de la 4ème colonne est le bouton de la colonne.Chargement de formulaire je dois désactiver l'ensemble de bouton de la colonne de la grille de données et d'après ce que je doit sélectionner les trois premières colonnes et enregistrer ces trois premières colonnes dans la base de données après l'enregistrement de ce le bouton de la colonne dans la ligne particulière devrait permettre.trois premières colonnes doit être enregistré dans databese en cliquant sur un bouton.
S'il vous plaît aidez-moi im a frappé avec ce problème depuis de nombreux jours
voici le code que j'ai utilisé
private void SATAddTemplate_Load(object sender, EventArgs e)
{
foreach (DataGridViewRow row in datagrdADDTEMP.Rows)
{
DataGridViewButtonCell btn = (DataGridViewButtonCell)row.Cells[3];
btn.ReadOnly = true;
}
}
private void btnSaveSettings_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow row in datagrdADDTEMP.Rows)
{
DataGridViewButtonCell btn = (DataGridViewButtonCell)row.Cells[3];
btn.ReadOnly = false;
}
}
OriginalL'auteur sree | 2012-09-21
Vous devez vous connecter pour publier un commentaire.
Voici un peu d'aide avec le problème de la définition de la
Enabled
propriété des Boutons qui apparaissent dans unDataGridViewButtonColumn
.Vous aurez besoin d'étendre
DataGridViewButtonColumn
pour créer votre propre DataGridView colonne avec désactiver la mesure de boutons. Cet article sur MSDN les détails de comment faire cela.L'article a beaucoup de code, et je vous encourage à les regarder de plus près, mais tous vous avez vraiment besoin de faire est de copier et coller dans votre projet les classes suivantes trouvé dans l'article:
-- DataGridViewDisableButtonColumn
-- DataGridViewDisableButtonCell
Une fois que vous faites cela, vous serez en mesure d'ajouter
DataGridViewDisableButtonColumn
s à votre DataGridView. Utilisez le publicEnabled
propriété exposée dans votre colonne personnalisée à l'ensemble de laEnabled
de la propriété de chaque cellule du Bouton de contrôle. Puisque vous voulez définir laEnabled
propriété de tous les Boutons de la colonne, vous pouvez écrire une méthode d'assistance qui parcourt toutes les lignes de votre DataGridView et définit laEnabled
propriété:Le
DataGridViewDisableButtonCell.Paint()
méthode dans l'article MSDN scintille au repeint (pas de double mise en mémoire tampon). Pour remédier à modifier leur mise en œuvre à l'aide de cet article comme un guide. Créer un BufferedGraphics objet (par exemple,myBuffer
), remplacer les usages degraphics
avecmyBuffer.Graphics
, et ensuite appelermyBuffer.Render()
à la fin. Mise en garde: L'appel àTextRenderer.DrawText()
DEVEZ spécifier ces format texte drapeaux pour positionner le bouton correctement le texte:PreserveGraphicsTranslateTransform | HorizontalCenter | VerticalCenter
La solution dans ce lien également de ne pas répondre pour le Rembourrage dans votre CellStyle. Vous pouvez modifier la Méthode de Peinture d'incorporer n'importe quel Rembourrage présent dans le "cellStyle" en ajoutant la marge.Valeur horizontale à buttonAdjustment.De la largeur et de Rembourrage.Verticale de la valeur à buttonAdjustment.La hauteur et l'ajout de cellStyle du Rembourrage.De gauche à buttonAdjustment.X et cellStyle du Rembourrage.Haut de buttonAdjustment.Y.
Je sais c'est un peu vieille question, mais pourriez-Vous partager le code de clignotement problème? Je ne peux pas obtenir que cela fonctionne.
J'ai ajouté le code comme une réponse.
OriginalL'auteur Jay Riggs
C'est un supplément de Jay réponse.
À la demande, voici le code que j'ai utilisé pour créer un bouton de cellules qui peuvent être désactivés. Il comprend un double tampon, de sorte que les boutons ne pas apparaître lorsque l'utilisateur fait défiler.
Je suis avec cela, mais est-il un moyen pour arrêter la lecture du clic lorsque le bouton est désactivé sans vérifier sur le contrôle datagrid?
OriginalL'auteur Chris Staley
Vous pouvez utiliser cet article MSDN Article MSDN:Désactiver le bouton dans le dataGridView il utilise une classe pour datagridview bouton et remarquez que vous devez cocher la case activer le statut de bouton chaque fois que vous prêt à gérer
OriginalL'auteur Hamid