Ir para conteúdo
Fórum Script Brasil
  • 0

Chamar método que limpa txtbox do form


ƒ Edu ƒ

Pergunta

Galera, estou usando C#, e criei um método para limpar todas as textbox do form, mas não consigo chamar este método em outro form passando o form atual como parâmetro...

Método:

public static void LimparTextBox(Control formulario)
        {
            foreach (Control controle in formulario.Controls)
            {
                if (controle.GetType().ToString() == "TextBox")
                {
                    controle.Text = "";
                }
            }
        }
No botão limpar eu tento chamar o método:
private void LimparButton_Click(object sender, EventArgs e)
        {
            MenuForm.LimparTextBox(IncidenteForm);
        }

Ao tentar compilar ele retorna o erro: Error 'HelpTool.IncidenteForm' is a 'type' but is used like a 'variable'

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
Não deveria ser...

MenuForm.LimparTextBox(this);
...? Considerando-se que se está no próprio form, é claro. Abraços, Graymalkin
Valeu Graymalkin, funcionou. Agora tem um complemento para esta função caso eu esteja usanto algum controle tipo tabpage, tabcontrol, panel, etc, para que este método faça a varredura nas textboxes contidas nestes controles... Mas o código que eu vi na net não fez muito sentido pra mim. Tentei da seguinte forma, mas não limpou nada no form:
public static void LimparTextBox(Control formulario)
        {
            foreach (Control controle in formulario.Controls)
            {
                if (controle.GetType().ToString() == "System.Windows.Forms.GroupBox" ||
                    controle.GetType().ToString() == "System.Windows.Forms.TabControl" ||
                    controle.GetType().ToString() == "System.Windows.Forms.Panel" ||
                    controle.GetType().ToString() == "System.Windows.Forms.TabPage"
                    )
                {
                    LimparTextBox(controle)
                    if (controle.GetType().ToString() == "System.Windows.Forms.TextBox")
                    {
                        controle.Text = "";
                    }
                }
            }
        }

Link para o comentário
Compartilhar em outros sites

  • 0
Tentei da seguinte forma, mas não limpou nada no form:

Acho que está faltando um else ali, não?

public static void LimparTextBox(Control formulario)
        {
            foreach (Control controle in formulario.Controls)
            {
                if (controle.GetType().ToString() == "System.Windows.Forms.GroupBox" ||
                    controle.GetType().ToString() == "System.Windows.Forms.TabControl" ||
                    controle.GetType().ToString() == "System.Windows.Forms.Panel" ||
                    controle.GetType().ToString() == "System.Windows.Forms.TabPage"
                    )
                {
                    LimparTextBox(controle);
                }
                else
                {
                    if (controle.GetType().ToString() == "System.Windows.Forms.TextBox")
                    {
                        controle.Text = "";
                    }
                }
            }
        }

Isso é uma rotina recursiva, que chama a si mesma.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...