Compartilhar via


Tutorial: Personalizar um aplicativo WinForms de 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 tenta responder dentro de um tempo especificado.

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

Neste tutorial final, você aprenderá a:

  • Adicione manipuladores de eventos para limpar os valores de controle NumericUpDown padrão.
  • Personalize o teste.

Pré-requisitos

Este tutorial se baseia em tutoriais anteriores, começando com Criar um aplicativo WinForms de teste de matemática. Se você ainda não concluiu esses tutoriais, passe por eles primeiro.

Adicionar manipuladores de eventos para os 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 selecionar o valor padrão primeiro ou excluir esse valor manualmente. Ao adicionar um manipulador de eventos Enter, você pode facilitar a inserção de respostas. Esse código seleciona e limpa o valor atual em cada controle NumericUpDown assim que o participante do teste o seleciona e começa a 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.

    Captura de tela que mostra a barra de ferramentas da caixa de diálogo Propriedades. Um ícone que contém um raio é destacado.

    A guia Eventos no Properties exibe todos os eventos aos quais você pode responder pelo item selecionado no formulário. Nesse caso, todos os eventos listados pertencem ao controle NumericUpDown.

  2. Selecione o evento Enter, insira answer_Entere selecione Enter.

    Captura de tela que mostra a caixa de diálogo Propriedades com o evento Enter selecionado. A caixa de método contém 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 seguinte código:

    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);
        }
    }
    

Neste código:

  • A primeira linha declara o método. Ele inclui um parâmetro chamado sender. Em C#, o parâmetro é object sender. No 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çar a inserir uma resposta diferente, a resposta atual será apagada e substituída pela nova resposta.

  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 seu aplicativo

  1. Salve seu programa e execute-o.

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

    Captura de tela que mostra o aplicativo de teste com quatro problemas matemáticos aleatórios. A resposta padrão para o primeiro problema é selecionada.

Personalizar seu teste

Nesta última parte do tutorial, você explorará algumas maneiras de personalizar o teste 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 terminar.

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, escreva 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
  • Adicionado um temporizador
  • Configurar manipuladores de eventos para seus controles
  • Código C# ou Visual Basic gravado para lidar com os eventos

Continue aprendendo com outra série de tutoriais sobre como criar um jogo correspondente.