Comment appuyer sur un bouton à partir d'un autre formulaire à l'aide de C#?
J'ai 2 formulaires:
- Form1 que faire une capture d'écran.
- Form2 qui ont 2 boutons à manipuler la capture d'écran créé par form1.
Form1 aussi avoir un "caché" bouton qui contient la méthode pour enregistrer la capture d'écran.
Mes questions:
Comment puis-je cliquez sur form1 le bouton de form2?
et
Comment puis-je vérifier lors de la form1 est fermé, puis fermer form2 trop?
J'ai essayé quelque chose comme ça, mais rien ne se passe lorsque je clique sur form2 bouton enregistrer:
var form = Form.ActiveForm as Form1;
if (form != null)
{
form.button1.PerformClick();
}
Vous devez vous connecter pour publier un commentaire.
Tout d'abord la façon normale de multiples formes de travail, c'est que lorsque vous fermez le formulaire de Démarrage, puis les formes secondaires sera également à proximité. Si vous êtes à la création de votre
Form2
dansForm1
je voudrais montrer en utilisant(your second Forms Instance).Show(this)
. Vous pouvez ensuite accéder au Formulaire par Form2 de la Propriété Parent. c'est à direVous devriez alors être en mesure d'accéder à toutes les méthodes publiques de
Form1
, Aussi je prendrais le code que vous utilisez pour enregistrer votre capture d'écran et la mettre dans une méthode publique, pas besoin de l'avoir dans l'événement click d'un Bouton, surtout si le bouton est caché.Voici un exemple rapide:
Form1
Form2
Var frm = (Form1)this.Owner;
à la place. Je vais poster une mise à jour du code d'exempleAu lieu de faire un bouton caché il suffit de faire une méthode qui n'est pas lié à un bouton.
Dans
Form1.cs
:Dans
Form2.cs
:Assurez-vous également de déclarer la
SaveScreenshot
méthodepublic
ouinternal
.J'ai changé le code
Form1
. Si vous cliquez sur un boutonForm2
puisForm2
sera leActiveForm
, de sorte que votre code ne sera jamais "voir"Form1
. J'ai utilisé des méthodes LINQ dans mon code qui ne fonctionne que si vous avez unusing System.Linq;
en haut de votre code.