none
Bloqueando negativo ou nada RRS feed

  • Pergunta

  • Olá pessoal.

    Estou tentando bloquear a possibilidade do utilizador de colocar o caractere negativo ou nada e executar o programa. Assim causando erro.

    Código:

    Pastebin: link

    using System;
        using System.Collections.Generic;
        using System.Linq;
        using System.Net;
        using System.Windows;
        using System.Windows.Controls;
        using System.Windows.Documents;
        using System.Windows.Input;
        using System.Windows.Media;
        using System.Windows.Media.Animation;
        using System.Windows.Shapes;
        using Microsoft.Phone.Controls;
         
        namespace PhoneApp1
        {
            public partial class Newton : PhoneApplicationPage
            {
                public Newton()
                {
                    InitializeComponent();
                }
         
                private void OK_Click(object sender, RoutedEventArgs e)
                {
                    double a = 0, b = 0, c = 0;
                    a = (((double.Parse(TempNewton.Text) * 60) / 11) + 32);
                    b = (((double.Parse(TempNewton.Text)) * 100)/ 33);
                    c = (((double.Parse(TempNewton.Text) * 100) / 33) + 273.15);
         
         
                    {
                        RFahrenheit.Text = a.ToString();
                        RCelsius.Text = b.ToString();
                        RNewton.Text = c.ToString();
                    }
                }
         
                private void negativo_Click(object sender, RoutedEventArgs e)
                {
                    if (TempNewton.Text.StartsWith("-"))
                        TempNewton.Text = TempNewton.Text.Substring(1);
                    else
                        TempNewton.Text = "-" + TempNewton.Text;
                }
         
                private void button1_Click(object sender, RoutedEventArgs e)
                {
                NavigationService.GoBack();
                }
                protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
                {
                    base.OnBackKeyPress(e);
                    if (TempNewton.Text != string.Empty)
                    {
                        var result = MessageBox.Show("Tem certeza que quer sair?",
                        "Aviso", MessageBoxButton.OKCancel);
                        if (result != MessageBoxResult.OK)
                        {
                            e.Cancel = true;
                        }
                    }
                }
            }
        }

    Linha 24 e 25.

    Tentei usar if, mas não funcionou corretamente. Possuem alguma idéia?

    Obrigado




    • Editado pp.amorim domingo, 29 de abril de 2012 17:16
    domingo, 29 de abril de 2012 17:15

Todas as Respostas

  • Ora viva, não percebi muito bem o que pretendes, mas uma coisa notei no teu código: a linha que tem o base.OnBackKeyPress(e); devia de ser a última do bloco de código, não a primeira (senão ele nunca assume o e.Cancel = true; que lá tens! ;)


    Pedro Lamas
    DevScope | Senior Software Development Engineer & WP7 Development Speaker
    www.pedrolamas.com | @pedrolamas

    domingo, 29 de abril de 2012 18:45
  • Olá.

    Seguinte, se deixar o campo vazio e apertar OK. Ele dá erro:


    O mesmo ocorre de escrever "-":

    Ele dá erro e trava o programa. Gostaria de saber se é possivel adicionar um aviso por MessageBox quando o erro ocorrer.


    • Editado pp.amorim domingo, 29 de abril de 2012 22:34
    domingo, 29 de abril de 2012 19:31
  • Olá,

    O ideal é que vc realize a validação do seu campo, antes de enviar o valor para realizar o cálculo.

    Caso o valor não seja permitido, pode exibir um MessageBox, ou então mudar a borda do controle para vermelho e etc.

    []s


    Thiago J. Mônaco
    MVP Windows Phone Development
    MCP, MCAD, MCSD, MCDBA, MCTS, MCPD and MCT Professional
    Scrum Developer I and Professional Scrum Master
    http://www.windowsphonebrasil.net
    @thiagojmonaco

    segunda-feira, 30 de abril de 2012 14:20
    Moderador