簡體   English   中英

C#如何從Form2訪問Form1控件並且在最小化時不受影響

[英]C# How to access Form1 controls from Form2 and get not affected when minimized

再會。

我需要達到的目標:
仍然訪問Form1控件(更多關於 performclick 按鈕)&當我最小化Form1 時Form2不會受到影響。

想要在錄制或播放時復制>> Jitbit Macro Recorder Toolbar。

我得到了什么:

表格1:

Form2 form2= new Form2();

private void Form1_Load(object sender, EventArgs e)
{
     form2.Show();
}

表格2:

Form1 form1;

private void Form2_Load(object sender, EventArgs e)
{
     form1 = (Form1)this.Owner;
}

private void Button1_Click(object sender, EventArgs e)
{
     form1.buttonRecord.PerformClick();
     form1.WindowState = FormWindowState.Minimized;
}

如果你真的想走這條路,你可以公開你的點擊處理程序並調用它。

表格1:

Form2 form2= new Form2();

private void Form1_Load(object sender, EventArgs e)
{
     form2.Owner = this;
     form2.Show();
}

public void ButtonRecord_Click(object sender, EventArgs e)
{
}

表格2:

Form1 form1;

private void Form2_Load(object sender, EventArgs e)
{
     form1 = (Form1)this.Owner;
}

private void Button1_Click(object sender, EventArgs e)
{
     form1.ButtonRecord_Click(sender, e);
     form1.WindowState = FormWindowState.Minimized;
}

你基本上做的是兩種形式之間的循環引用,這並不理想。 您可以考慮使用這樣的事件:

表格1:

Form2 form2= new Form2();

private void Form1_Load(object sender, EventArgs e)
{
     form2.Show();
     form2.Test += (s, ee) => MessageBox.Show("test event");
}

表格2:

public event EventHandler Test;

private void Button1_Click(object sender, EventArgs e)
{
     Test?.Invoke(this, EventArgs.Empty);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM