Etapa 5: Adicionar insira manipuladores de Evento para controles de NumericUpDown
Talvez você tenha notado algo estranho sobre digitação de números de controle do NumericUpDown . Para corrigir esse problema, adicione um Inserir manipulador de eventos.
Para ver o comportamento do controle NumericUpDown
Executar o programa e iniciar o Game. A soma NumericUpDown controle deve ter um cursor piscando nele Próximo de 0 (zero).
Tipo3, E 30appears. Tipo de 5 e 350 aparece, mas Depois o segundo, torna-se de 100 .
Antes de corrigir esse problema, pense que está acontecendo. Considere a possibilidade de por que o de 0 a não desaparecem quando digitado 3. Considere a possibilidade de por que o de 350 alterado de 100 e por que havia um Intervalo antes de alterá-lo.
Observação Embora possa parecer Como comportamento estranho, há uma explicação. Quando você clica no botão de Iniciar , é Enabled propriedade do botão Conjunto para Falso e o botão aparecer esmaecido e Indisponível. O programa procura o controle com o próximo Mais baixo valor TabIndex — soma NumericUpDown controle — e altera o foco para esse controle. Quando você usa a tecla Tabulação para ir para um controle do NumericUpDown , ele automaticamente posiciona o cursor no Iniciar do controle, que Direito o que faz com que os números digitados sejam inseridos da Esquerdo e Direito não. Quando você digitar um número acima de de MaximumValue propriedade, que é definida como 100, ele substitui o número inserido com o valor máximo.
Para adicionar um Inserir manipulador de eventos para o controle NumericUpDown
Para evitar esse comportamento estranho e facilitar o Usar de seu programa, adicione um manipulador de eventos para cada de NumericUpDown controle evento Inserir. Usar a Adição de Adição de Página de eventos a Caixa de Diálogo Propriedades para adicionar um Inserir manipulador de eventos soma do NumericUpDown controle chamado de answer_Inserir .
Caixa de diálogo Propriedades
O código deve parecer semelhante ao seguinte.
Private Sub answer_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles sum.Enter ' Select the whole answer in the NumericUpDown control. Dim answerBox As NumericUpDown = TryCast(sender, NumericUpDown) If answerBox IsNot Nothing Then Dim lengthOfAnswer As Integer = answerBox.Value.ToString().Length answerBox.Select(0, lengthOfAnswer) End If End Sub
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); } }
Embora isso possa parecer complexo inicialmente, é mais fácil de compreender se você examiná-la passo a passo. Em primeiro lugar, procure na Cima do método: object senderem c# ousender As System.Objectin Visual Basic. Isso significa que dentro de seu método, a qualquer hora que você Usar sender, refere-se para o NumericUpDown controle cujo evento Inserir está disparando. Portanto, Primeiro linha do método, você especifica que não é apenas um objeto, mas especificamente um NumericUpDown controle. (Cada controle do NumericUpDown é um objeto, mas não todos os objetos é um controle do NumericUpDown ). A próxima linha verifica se o answerBox foi convertido com êxito (convertida) de um objeto para um controle do NumericUpDown . Se for malsucedido, ele teria um valor nulo (c#) ou Nada @ (@). A terceira linha localiza o tamanho da resposta que é exibido no momento em que o controle do NumericUpDown . A quarta linha indica o de NumericUpDown controle Selecione a resposta. Agora quando o usuário navega para o controle, ela dispara esse evento, que faz com que ele Selecione a resposta. Assim que o usuário começar Digitação, a resposta anterior está desmarcada e substituída pela nova resposta.
Depois que o manipulador de Evento esteja instalada, Ir para o Designer de Formulários do Janelas e selecione diferença NumericUpDown controle. Ir para a Adição de Adição de Página de eventos no Caixa de Diálogo Propriedades rolar Abaixo para o evento Inserir e selecione o manipulador de eventos que você acabou de adicionar.
Em seguida, faça o mesmo para o produto e o quociente NumericUpDown controles.
salvar e execute o programa. O comportamento estranho não deve ocorrer.
Para continuar ou revisar
Para ir para o Próximo tutorial passo, consulte Etapa 6: Adicionar um problema de subtração.
Para Retorno à etapa anterior tutorial, consulte Etapa 4: Adicionar o método CheckTheAnswer().