当前位置: 首页 > 编程语言 > C#

如何使用C#从另一个窗体按下按钮?Share

时间:2023-04-11 11:53:22 C#

如何使用C#从另一个窗体中按下按钮?我有两种形式:Form1,用于截图。Form2有2个按钮来操作form1创建的屏幕截图。Form1还有一个“隐藏”按钮,其中包含保存屏幕截图的方法。我的问题:如何从form2单击form1的按钮?如何检查form1何时关闭然后关闭form2?我尝试过类似的操作,但是当我单击form2保存按钮时没有任何反应:varform=Form.ActiveFormasForm1;if(form!=null){form.button1.PerformClick();}首先,多个表单正常工作的方式是,当您关闭“启动”表单时,辅助表单也将关闭。如果您在Form1中创建Form2,我将使用(您的第二个Forms实例).Show(this)显示它。显示(您的第二个表单实例)。显示(这个)。然后您可以通过Form2的父属性访问该表单。即varform=(Form1)this.Owner();然后你应该能够访问Form1的所有公共方法,我会使用你正在使用的代码来保存你的屏幕截图并放入一个不需要在按钮的点击事件中的公共方法,特别是如果按钮被隐藏.下面是一个简单的例子:publicpartialclassForm1inForm1:Form{publicForm1(){InitializeComponent();}privatevoidbutton1_Click(objectsender,EventArgse){Form2frm=newForm2();frm.Show(这个);}}Form2publicpartialclassForm2:Form{publicForm2(){InitializeComponent();}privatevoidbutton1_Click(objectsender,EventArgse){varfrm=(Form1)this.Owner;如果(frm!=null)frm.button1.PerformClick();不是隐藏按钮,而是创建一个未链接到按钮的方法。在Form1.cs中:publicvoidSaveScreenshot(){//TODO:保存屏幕截图}在Form2.cs中:Form1form=Application.OpenForms.OfType().FirstOrDefault();if(form!=null){form.SaveScreenshot();此外,确保将SaveScreenshot方法声明为公共或内部方法。我更改了代码以获取Form1。如果单击Form2上的按钮,则Form2将成为ActiveForm,因此您的代码永远不会“看到”Form1。我在代码中使用LINQ方法,仅在使用System.Linq之后;在代码的顶部。以上是C#学习教程:如何使用C#从另一个窗体中按下按钮?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:

最新推荐
猜你喜欢