none
Fechando um UserControl RRS feed

  • Pergunta

  • Galera ,
    Tenho o seguinte problema , tenho um Form principal aonde tenho adicionado em tempo de execução diversos Users Controls , no form tenho um botão que abre outro form , nesse outro form tenho um botão que presciso que todos os usersControls do Form Principal sumam ,
    Como é possível fazer isso ??
    terça-feira, 22 de dezembro de 2009 16:21

Respostas

  • Fiz um exemplinho rapido aqui.

    Classe do Forme filho expondo um evento para ser capturado pelo form pai, o evento do click do botao dispara o evento exposto.

    public partial class FormFilho : Form
    {
        public event EventHandler RemoveControles;
        
        public FormFilho()
        {
            InitializeComponent();
        }
    
        private void button1_Click(object sender, EventArgs e)
        {
            if (RemoveControles != null)
                RemoveControles.Invoke(sender,e);
        }
    }
    Form pai captura o evento de click do botao do form filho e remove os controles contorme necessario.

    public partial class FormPai : Form
    {
        private FormFilho formFilho = new FormFilho();
        public FormPai()
        {
            InitializeComponent();
            formFilho.RemoveControles += new EventHandler(formFilho_RemoveControles);
        }
    
        private void button2_Click(object sender, EventArgs e)
        {
            formFilho.Show();
        }
    
        void formFilho_RemoveControles(object sender, EventArgs e)
        {
            foreach (Control var in this.Controls)
            {
                if (var.Tag != null)
                {
                    if (var.Tag.ToString().ToUpper() != "TRUE")
                        this.Controls.Remove(var);
                }
                else 
                {
                    this.Controls.Remove(var);
                }
            }
        }
    }
    espero ter ajudado, Abraço.
    • Marcado como Resposta Paulorf1984 terça-feira, 22 de dezembro de 2009 17:28
    terça-feira, 22 de dezembro de 2009 17:25