2017-05-03 52 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

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

相关问题