簡體   English   中英

在父窗體子窗體中禁用按鈕

[英]Disabling Button In Parent Form Child Form

我有兩種形式。 一個是帶有按鈕的父表單,一個帶有單選按鈕的子表單。 我想根據是否在子表單中啟用了單選按鈕來啟用/禁用父表單中的按鈕。 我應該提出一個事件還是有另一種方法來實現這一目標??

事件是一種很好的解決方案。 他們將花費更多的代碼,但是如果您想要一個可以在將來擴展的健壯解決方案,這可能是值得的。

另一方面,如果您只是想快速解決問題,那么還有兩種通用的解決方案。

創建子表單時,可以將其傳遞給創建它的父表單的引用(通過構造函數)

就像是

public partial class Form2 : Form
{
    private Form1 parrentForm;
    public Form2(Form1 parrent)
    {
      parrentForm = parrent;
    }

創建子表單時,您將其傳遞給引用

//from inside Form1
Form2 frm2 = new Form2(this);

您可以在Form1中聲明一個公共方法

public void EnableButton() {
}

然后使用存儲的引用從form2調用它

parrentForm.EnableButton();

您甚至可以將Form1中的按鈕設為公開(從gui中選擇按鈕,然后在屬性窗格中將“輔助功能”屬性更改為“公共”,而不是默認的“私人”。

然后在form2中,你可以做

parrentForm.Button1.Enabled = false;

這些都是快速且有些骯臟的解決方案。 對於復雜用途,事件更為清晰。

最后,選擇最有意義的方法。

我喜歡上面的答案,但僅需提及,您也可以使用一個事件。

public event EventArg RadioButtonHasChanged;

暫無
暫無

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

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