我在Form 1中有兩個按鈕,一個是「ShowForm2」按鈕,另一個是「button1」按鈕。如何使用公共獲取設置從表單2啓用表單1中的按鈕?
默認情況下,按鈕1被禁用。當我點擊「ShowForm2」按鈕時,表格2將顯示。
所以,我想的是,當我點擊表格2 「按鈕2」,它將使形式 「Button1的」 1
所以,我嘗試在我的窗口2類代碼:
public partial class Form2 : Form
{
bool enable_form1_button1;
public bool Enable_form1_button1
{
get { return this.enable_form1_button1; }
set { this.enable_form1_button1 = value; }
}
public Form2()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
enable_form1_button1 = true;
}
}
在我的Form1類
然後,我期待得到「enable_form1_button1 = true」將傳遞到FO RM 1並啓用我的表單1按鈕1。但如何做到這一點?
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btb_Showfrm2_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.Show();
button1.Enabled = frm2.Enable_form1_button1; // I put it here, and it just does not seems right
}
}
你可以做像SetButton1Enabled'公共無效的方法(啓用布爾){button1.Enabled =啓用; }'Form1'內並在'Form2'的'button2_Click'方法內調用該方法('Form2'需要引用調用它的'Form1'對象)。或者與活動/代表合作。 – Corak
它無法看到任何Form2 Form1公共方法,即使我已經設置修飾符爲form2中的button2 public2 – jhyap
'Form1'和'Form2'是類,你不能調用(非靜態;但不要去在課堂上!)方法。你需要一個該類的「實例」。因此'frm2'-instance需要引用Form1類的調用實例,然後才能調用該方法。或者如果'button1'是公共的,直接設置'frm1.button1.enabled = true;'。 – Corak