Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1

    C# V.S. Inserire una condizione su TextBox.

    Buongiorno,


    ho 3 TextBox con evento KeyPress.


    Se inserisco un testo o effettuo una modifica, all'ultimo TextBox mi salva e si apre il DataGridView con la modifica o l'inserimento effettuato. Tutto Ok.


    Gradirei e non riesco che se non effettuo l'inserimento o la modifica deve chiudere il programma.
    Per semplicità riporto il codice per due TextBox:
    codice:
    private void TextBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == (char)Keys.Enter)
        {
            if (TextBox1.Text.Length == 0)
            {
                TextBox2.Focus();
            }
            if (System.Text.RegularExpressions.Regex.IsMatch(TextBox1.Text, @"^[a-zA-Z ]+$") == false)
            {
                MessageBox.Show("Il campo contiene caratteri non validi");
                TextBox1.Text = "";
                TextBox1.Focus();
                return;
            }
            TextBox1.Text = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(TextBox1.Text.Replace("'", "§")).Replace("§", "'");
            TextBox2.Focus();
    Ho provato con il seguente codice:
    codice:
    if (TextBox1 == "" && TextBox2 == "")
    {
        Application.Exit;
    }
    else
    {
        Salva();
    }
    Auguro che possiate suggerire.


    Domenico.
    Ultima modifica di alka; 31-05-2023 a 10:42 Motivo: Formattato il codice correttamente (si usa CODE, non QUOTE!)

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Quote Originariamente inviata da Pacifico437 Visualizza il messaggio
    Gradirei e non riesco che se non effettuo l'inserimento o la modifica deve chiudere il programma.
    Ok, ma qual è il problema? Non si chiude il programma? Si chiude con un'altra condizione?

    Spiega meglio qual è la ragione per questo comportamento e cosa avviene differentemente da quello che vorresti ottenere.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Il problema che riscontro che va sempre al salvataggio anche se non inserisco o modifico.


    Cerco di descrivere al dettaglio ciò che desidero.
    Alla TextBox1 è inserito un testo e la TextBox2 è vuota.


    Alla TextBox2, vorrei inserire una condizione che se modifico la voce inserita alla TextBox1 o se inserisco una voce alla TextBox2 deve salvare diversamente se non inserisco o modifico deve chiudere il programma.

  4. #4
    l'update parte al click sul bottone "Salva"?
    ARTRIPE

  5. #5
    no cliccando sulla seconda TextBox con evento KeyPress.

  6. #6
    strano comportamento, comunque: puoi postare il codice di TextBox2_KeyPress ?
    ARTRIPE

  7. #7
    codice:
    private void TextBox2_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == (char)Keys.Enter)
        {
            if (TextBox2.Text.Length == 0)
            {
                goto Linea;
            }
            else
            {
                TextBox2.Text = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(TextBox2.Text.Replace("'", "§")).Replace("§", "'");
            }
    
        Linea:
            if (TextBox1.Text == "" || TextBox2.Text == "")
            {
                Application.Exit;
            }
            else
            {
                Salva();
            }
    Ultima modifica di alka; 31-05-2023 a 12:15 Motivo: Formattato il codice

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Quote Originariamente inviata da Pacifico437 Visualizza il messaggio
    Il problema che riscontro che va sempre al salvataggio anche se non inserisco o modifico.
    Tu non stai controllando se inserisci o modifichi, ma stai controllando solamente se le caselle sono vuote.

    Quote Originariamente inviata da Pacifico437 Visualizza il messaggio
    Cerco di descrivere al dettaglio ciò che desidero.
    Alla TextBox1 è inserito un testo e la TextBox2 è vuota.
    Alla TextBox2, vorrei inserire una condizione che se modifico la voce inserita alla TextBox1 o se inserisco una voce alla TextBox2 deve salvare diversamente se non inserisco o modifico deve chiudere il programma.
    Bisogna intendersi.
    Un conto è verificare se le suddette caselle di testo contengono o meno un valore, che è quello che stai controllando.

    Un altro conto è verificare che il valore delle caselle sia stato modificato, cosa di cui non v'è traccia nel codice, sebbene la tua spiegazione - se devo interpretarla alla lettera - stia intendendo questo; in caso contrario, non ti sei espresso bene o hai usato termini impropri (ossia vuoi controllare che siano vuote, non inserite o modificate).

    Guardando comunque il codice, la logica è molto farraginosa: al momento controlli se la T2 è vuota, e in caso affermativo fai un "goto" (sarebbero da evitare, come la peste) dove esci se almeno una delle caselle T1 e T2 è vuota, altrimenti inserisci in T1 un valore formattato di quello che c'è in T2... mi sfugge completamente l'obiettivo finale di questa logica, ovvero cosa deve fare il programma, unitamente ai dubbi espressi sopra di cosa vuoi ottenere, e di cosa poi avvenga realmente nel codice (il debugging - lo ripeto - non è un optional).

    Riassunto in sintesi, almeno io non ci ho capito nulla.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  9. #9
    Domenico, descrivi per cortesia un po' meglio lo scenario. Quello che non è chiaro è il motivo per cui salvi il contenuto di textbox1 mentre scrivi textbox2... stai aggiornando un record che hai precedentemente letto da un db?
    ARTRIPE

  10. #10
    Gent.mo Optime,


    ringrazio e mi scuso se non sono chiaro.


    Evidenziando una riga del DataGridView, con un pulsante vengono popolate le tre TextBox con evento KeyPress.


    Se non modifico, all'ultima TextBox (che sarebbe la terza) con l'invio il programma deve chiudere.


    Se modifico ad una della tre TextBox, alla terza TextBox con l'invio le modifiche vengono salvate.

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 © 2023 vBulletin Solutions, Inc. All rights reserved.