7
votes

Cliquez par programme sur une case à cocher

Y a-t-il un moyen de générer de manière programmable un événement de clic sur une case à cocher? Je cherche un équivalent à boutonner.performclick ();


2 commentaires

Changer la propriété vérifiée comme Jeff suggéré pas suffisant? Peux-tu élaborer?


Les formulaires ASP.NET ou Windows?


7 Réponses :


10
votes

Pourquoi avez-vous besoin de simuler un clic, cette ligne de code ne correspond pas à votre besoin?

private void CheckBox1_CheckedChanged(Object sender, EventArgs e)
{
   MessageBox.Show("You are in the CheckBox.CheckedChanged event.");
}


4 commentaires

J'ai posté ceci mais la question indique "cliquez sur l'événement". Cela ne générera pas de clic événement.


Peut-être que je refactoriserai le contrôle et j'utiliserai l'événement à carreaux à carreaux ... Tout ce qui sera plus facile.


L'OP pourrait-il expliquer pourquoi c'était la réponse choisie, quand il ne répond pas à la question, qui est de tirer parti de l'événement OnClick ?!


J'ai extrapolé que OP ne connaissait pas l'événement à carreaux. Tout en ne répondant pas à sa question spécifique, il résout son intention de la racine d'être notifiée lorsqu'une case à cocher est modifiée par programmation.



1
votes

Je crée toujours un nouveau poste de travail pour que je ne puisse pas rechercher cela correctement pour le moment, mais avec UI Automation peut-être qu'il est possible que la case à cocher prend en charge le iinvokeprovider et vous pouvez utiliser le invoquer la méthode ?


0 commentaires

0
votes

Je ne pense pas que vous puissiez générer un événement de clic de cette façon sans appeler directement le gestionnaire d'événements. Mais vous pouvez faire cela:

checkBox.Checked = !checkBox.Checked;


0 commentaires

3
votes

Pourquoi voulez-vous générer un événement de clic sur la case à cocher?

Si vous souhaitez activer la valeur: P>

HandleCheckBoxClick(theCheckBox);


3 commentaires

J'essaie de tester une forme méchante, qui permet certains des contrôles contenant dans le ..._ cliquez sur le gestionnaire d'événements.


Soyez prudent - vous ne voulez pas appeler cette méthode à partir de ThecheckBox_Click et Thecheckbox_Checkedchanged tel qu'il sera appelé deux fois lorsque la case à cocher est cliquée.


@GRZENIO: activation / désactivation des commandes dans le Cliquez sur Même une case à cocher n'est pas une bonne idée; Et si la propriété cochée est attribuée par code? Cela ne déclenche pas l'événement Cliquez sur et que l'interface utilisateur sera dans un état incohérent. Vous devriez probablement laisser ce code être exécuté à la suite de l'événement checkedchanged à la place.



3
votes

Ces solutions ci-dessus Cochez la case Cochez la case.CheckedChangedChanged.

Si vous souhaitez appeler explicitement cliquez sur Evénement, vous pouvez ceci: P>

checkBox1_Click(checkBox1, null);


2 commentaires

Cela aurait dû être la réponse


Cela n'appelle que le gestionnaire d'événements de clic, il ne "génère" pas de clic et ne modifie pas la valeur de la case à cocher.



-1
votes

Vous ne spécifiez pas quel type de contrôle de case à cocher. ASP.NET ou Windows?

Assum de contrôle de la case à cocher Web, il s'agit de la manière de le déclencher à l'aide de l'appel JavaScript à partir de l'intermédiaire de Code-Ber ... p>

appeler une fonction JavaScript du code derrière p>

Étape 1 Ajoutez votre code JavaScript strong> p>

ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", "Func()", true);


0 commentaires

0
votes

La touche PerformClick () La méthode valide le contrôle actif, testez si le contrôle actif peut perdre la mise au point actuelle. Il existe deux façons d'éventuellement faire la même chose pour une case à cocher . L'approche n ° 1 consiste à utiliser la réflexion pour appeler les méthodes internes à la classe Classe: xxx

approche # 2 essaie de faire la même chose, mais sans réflexion: xxx


0 commentaires