Partilhar via


Tutorial: Personalizar um aplicativo WinForms para um teste de matemática

Nesta série de quatro tutoriais, você criará um teste de matemática. O teste contém quatro problemas matemáticos aleatórios que um participante do teste tentará responder em um tempo especificado.

Este tutorial mostra como aprimorar o teste limpando valores padrão e personalizando a aparência dos controles.

Neste tutorial final, você aprenderá a:

  • Adicionar manipuladores de eventos para limpar os valores de controle padrão NumericUpDown.
  • Personalizar o teste.

Pré-requisitos

Este tutorial se baseia em tutoriais anteriores, começando com Criar um aplicativo WinForms para um teste de matemática. Você precisa concluir esses tutoriais antes, caso ainda não tenha feito.

Adicionar manipuladores de eventos aos controles NumericUpDown

O teste contém os controles NumericUpDown que os participantes do teste usam para inserir números. Ao inserir uma resposta, você precisa primeiro selecionar o valor padrão ou excluir esse valor manualmente. Adicionar um manipulador de eventos Enter pode facilitar a inserção de respostas. Esse código seleciona e desmarca o valor atual em cada controle NumericUpDown para que quem fizer o teste possa escolher e inserir um valor diferente.

  1. Selecione o primeiro controle NumericUpDown no formulário. Na caixa de diálogo Propriedades, selecione o ícone Eventos na barra de ferramentas.

    Screenshot that shows the toolbar of the Properties dialog box. An icon that contains a lightning bolt is called out.

    A guia Eventos na caixa de diálogo Propriedades exibe todos os eventos para os quais você pode responder para o item que você selecionou no formulário. Nesse caso, todos os eventos listados pertencem ao controle NumericUpDown.

  2. Selecione o evento Enter, insira answer_Enter e selecione Enter.

    Screenshot that shows the Properties dialog box with the Enter event selected. The method box contains answer_Enter.

    O editor de código aparece exibindo o manipulador de eventos Enter que você criou para o controle NumericUpDown de soma.

  3. No método para o manipulador de eventos answer_Enter, adicione o código a seguir:

    private void answer_Enter(object sender, EventArgs e)
    {
        // Select the whole answer in the NumericUpDown control.
        NumericUpDown answerBox = sender as NumericUpDown;
    
        if (answerBox != null)
        {
            int lengthOfAnswer = answerBox.Value.ToString().Length;
            answerBox.Select(0, lengthOfAnswer);
        }
    }
    

Importante

Use o controle da linguagem de programação no canto superior direito desta página para exibir os snippets de código C# ou do Visual Basic.

Programming language control for Microsoft Learn

Neste código:

  • A primeira linha declara o método. Inclui o parâmetro sender. Em C#, o parâmetro é object sender. In Visual Basic, é sender As System.Object. Este parâmetro refere-se ao objeto cujo evento é acionando, que é conhecido como o remetente. Nesse caso, o objeto remetente é o controle NumericUpDown.
  • A primeira linha dentro do método converte o remetente de um objeto genérico em um controle NumericUpDown. Essa linha também atribui o nome answerBox ao controle NumericUpDown. Todos os controles NumericUpDown no formulário usarão esse método, não apenas o controle do problema de adição.
  • A próxima linha verifica se answerBox foi convertido com êxito em um controle NumericUpDown.
  • A primeira linha dentro da instrução if determina o comprimento da resposta que está atualmente no controle NumericUpDown.
  • A segunda linha dentro da instrução if usa o comprimento da resposta para selecionar o valor atual no controle.

Quando o participante do teste seleciona o controle, o Visual Studio aciona esse evento. Esse código seleciona a resposta atual. Assim que o participante do teste começa a inserir uma resposta diferente, a resposta atual é apagada e substituída pela nova.

  1. No Designer de Formulários do Windows, selecione o controle NumericUpDown do problema de adição novamente.

  2. Na página Eventos da caixa de diálogo Propriedades, localize o evento Clique e selecione answer_Enter no menu suspenso. Esse manipulador de eventos é aquele que você acabou de adicionar.

  3. No Designer de Formulários do Windows, selecione o controle NumericUpDown do problema de subtração.

  4. Na página Eventos da caixa de diálogo Propriedades, localize o evento Enter e selecione answer_Enter no menu suspenso. Esse manipulador de eventos é aquele que você acabou de adicionar. Repita esta etapa para o evento Clique.

  5. Repita as duas etapas anteriores para os controles NumericUpDown de multiplicação e divisão.

Executar o aplicativo

  1. Salve seu programa e o execute.

  2. Inicie um teste e selecione um controle NumericUpDown. O valor existente é automaticamente selecionado e apagado quando você começa a inserir um valor diferente.

    Screenshot that shows the quiz app with four random math problems. The default answer to the first problem is selected.

Personalizar seus aplicativos

Nesta última parte do tutorial, você explorará algumas maneiras de personalizar o questionário e expandir o que aprendeu.

Alterar a cor de um rótulo

  • Use a propriedade BackColor do controle timeLabel para tornar esse rótulo vermelho quando restarem apenas mais cinco segundos em um teste.

    timeLabel.BackColor = Color.Red;
    
  • Redefina a cor quando o teste acabar.

Reproduzir um som para a resposta correta

Dê ao comprador de teste uma dica executando um som quando a resposta correta for inserida em um controle NumericUpDown. Para implementar essa funcionalidade, grave um manipulador de eventos para o evento ValueChanged de cada controle. Esse tipo de evento é acionado sempre que um participante do teste altera o valor do controle.

Próximas etapas

Parabéns! Você terminou esta série de tutoriais. Você concluiu essas tarefas de programação e design no IDE do Visual Studio:

  • Criou um projeto do Visual Studio que usa o Windows Forms
  • Adicionou rótulos, um botão e controles NumericUpDown
  • Adicionou um temporizador
  • Configurou manipuladores de eventos para seus controles
  • Gravou um código C# ou Visual Basic para manipular os eventos

Continue aprendendo com outras séries de tutoriais sobre como criar um jogo correspondente.