我有2种形式:
Form1还具有一个“隐藏”按钮,其中包含保存屏幕截图的方法。
我的问题:
我如何从form2单击form1的按钮?以及如何检查是否关闭了form1,然后又关闭了form2?
我已经尝试过类似的操作,但是当我单击form2保存按钮时什么也没有发生:
var form = Form.ActiveForm as Form1;
if (form != null)
{
form.button1.PerformClick();
}
Run Code Online (Sandbox Code Playgroud)
首先,正常情况下,多个表单将工作,当您关闭启动表单时,辅助表单也将关闭。如果您要Form2
在中创建,请Form1
使用来显示(your second Forms Instance).Show(this)
。然后,您可以通过Form2的Parent属性访问Form。即
var form = (Form1)this.Owner();
Run Code Online (Sandbox Code Playgroud)
然后,您应该能够访问的所有公共方法Form1
,而且我也会将您用于保存屏幕截图的代码放入公共方法中,而无需将其包含在Button的click事件中,尤其是在按钮为隐。
这是一个简单的示例:
表格1
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
frm.Show(this);
}
}
Run Code Online (Sandbox Code Playgroud)
表格2
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
var frm = (Form1)this.Owner;
if (frm != null)
frm.button1.PerformClick();
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12233 次 |
最近记录: |