Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [Visual C#] Quando scrivo una lettera nella combobox si pianta il software

    Ho appena terminato il programma in visual c# grazie al vostro aiuto, da solo non ci sarei mai riuscito. Mi resta un ultimo problemino che vi illustro.
    Quando nella combobox inserisco qualcosa di diverso da un numero il programma, giustamente, si pianta.
    Come faccio a dire a c#:

    "Quando l'utente scrive con la tastiera qualchecosa che non é un numero double o int o scrive un numero che esce dal range di validità della variabile avvisa l'utente di non scrivere fesserie."

    ?

    Grazie anticipatamente per tutto il vostro aiuto

  2. #2
    Ciao
    Se non ho capito male, stai lavorando in WPF dove ci sono tecniche appropriate per fare quello che vuoi fare tu.
    Ma restando sul semplice ..... puoi gestire l'evento LostFocus della combobox e controllare se, alla perdita del Focus, il testo inserito soddisfa i tuoi criteri.
    Oppure gestire l'evento KeyUp o KeyDown se vuoi controllare carattere per carattere durante la digitazione del testo.
    Ma tutto questo, riferito ad una ComboBox, mi sembra un pò inappropriato.

  3. #3
    Si esattamente, sto usando WPF però non mi interessa che mentre l'utente digita venga avvertito dell'errore. Mi basta semplicemente che il programma non si pianti. Potresti scrivermi la correzzione di questo codice qui:

    codice:
    L = double.Parse(lunghezza.Text);
    E' l'ultimo problema che mi preme veramente risolvere. Come puoi ben vedere sono poco esperto... A me qualunque soluzione va bene, anche la più semplice, basta che il programma non si pianti o dia dei valori inattendibili.

    Grazie mille

  4. #4
    Non si potrebbe dire:

    Quando L non é un double arresta il programma e manda un messaggio di avviso all'utente?

    sto pacioccando ma non ci riesco... ti prego scrivi un po' di codice...

    Oppure altra idea ma fisicamente non saprei come iscriverla...

    codice:
                if (double.Parse(lunghezza.Text) esiste o é un double)
                {
                    L = double.Parse(lunghezza.Text);
                }
                else
                {
                    L = un valore opportunamente scelto;
                }

  5. #5
    Originariamente inviato da marchionili
    Si esattamente, sto usando WPF però non mi interessa che mentre l'utente digita venga avvertito dell'errore. Mi basta semplicemente che il programma non si pianti. Potresti scrivermi la correzzione di questo codice qui:

    codice:
    L = double.Parse(lunghezza.Text);
    E' l'ultimo problema che mi preme veramente risolvere. Come puoi ben vedere sono poco esperto... A me qualunque soluzione va bene, anche la più semplice, basta che il programma non si pianti o dia dei valori inattendibili.

    Grazie mille
    Per esempio:
    codice:
     try
                {
                     L = double.Parse(lunghezza.Text);
                }
                catch (Exception)
                {
                    MessageBox.Show("Il valore inserito non è corretto");
                }
    ma potresti anche valutare la possibilità di usare
    codice:
    Double.TryParse
    Facci sapere...
    Ciao

  6. #6
    Siiiii!!!!!!!! Bravissimo!!!!!!!!!



    Grazie mille!!!!

    Wawwww!!! Era proprio quello che mi serviva!


  7. #7
    Ho visto che ci sono molte proprietà nel messaggio di uscita ma non riesco ad utilizzarle perché credo che manchino delle direttive using. Ho anche provato ad aggiungere queste ultime ma non c'é stato nulla da fare...

    Il codice che vs2010 mi da errato é il seguente:

    codice:
    MessageBox.Show("Testo messaggio","Titolo", MessageBoxButtons "Scritta sul bottone",MessageBoxIcon nomefile.ico);

  8. #8
    esempio
    codice:
    MessageBox.Show("Testo messaggio","Titolo",MessageBoxButton.YesNoCancel,MessageBoxImage.Error);
    Gli ultimi due parametri sono degli enumeratori ....
    Approfondisci anche questo argomento.

    Ciao

  9. #9
    Originariamente inviato da Jeremy75
    esempio
    codice:
    MessageBox.Show("Testo messaggio","Titolo",MessageBoxButton.YesNoCancel,MessageBoxImage.Error);
    Gli ultimi due parametri sono degli enumeratori ....
    Approfondisci anche questo argomento.

    Ciao
    Wawww! Grazie mille!!!



    Sei una persona davvero squisita.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.