2017-05-03 23 views
-1

我有一個形式和2用戶控件面板,當窗體負載,在負載()方法,裝載使用該代碼的第一個用戶控件:從用戶控件C#清除面板

private void OlvidadaContraseña_Load(object sender, EventArgs e) 
{ 
    panel1.Controls.Clear(); 
    UserControl1 Env = new UserControl1(); 
    panel1.Controls.Add(Env); 
} 

如何清潔面板(表格面板)和第一用戶控件(從用戶控件訪問形式的控制?)加載第二個用戶控件?

感謝名單

回答

0

,如果你想改變乾淨的面板和加載其他用戶控件與第一用戶控件,您必須使用委託事件。 您桅杆上添加控件(按鈕,..)在第一個用戶控件

在後面第一個用戶控件代碼:

public partial class EnvioContraseña: UserControl 
{ 
    public delegate void LoadOtherUserControl(EnvioContraseña sender); 
    public event LoadOtherUserControl On_SelectButton; 
    public EnvioContraseña() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     if (On_SelectButton != null) 
      On_SelectButton(this); 
    } 
} 

然後在後面的MainForm代碼

private void Form1_Load(object sender, EventArgs e) 
    { 
     panel1.Controls.Clear(); 
     EnvioContraseña Env = new EnvioContraseña(); 
     Env.On_SelectButton += Env_On_SelectButton; 
     panel1.Controls.Add(Env); 
    } 

    void Env_On_SelectButton(EnvioContraseña sender) 
    { 
     panel1.Controls.Clear(); 
     UserControl1 uc1 = new UserControl1(); 
     panel1.Controls.Add(uc1); 
    } 
+0

我如何使用delegate-這個例子中的事件? – Baker1562

+0

在上面的代碼中,我寫了如何使用它。 –

相關問題