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

    [VB.NET] Problemi con "Undo" e "Now"

    Ciao a tutti! Sono nuovo del forum e sono anche nuovo nella programmazione. Mi sono avvicinato da poco (tipo una settimana o due) al VB.Net, linguaggio che mi affascina molto, data anche la possibilità di realizzare anche applicazioni abbastanza complesse. Sto realizzando un'alternativa al notepad, per esercitarmi un pò, ma mi sono "bloccato" in 2 occasioni: una, è l'UNDO, che invece di annularmi l'ultima operazione mi annulla tutto, mentre io vorrei che annullasse solo l'ultima operazione; l'altro problema è ke con un comando da menu faccio apparire l'ora e la data corrente (comando "Now") sulla RichTextBox (e qst funziona) però mi cancella tutto il testo precedentemente scritto e mi fa apparire appunto l'ora e la data. Come posso risolvere questi due problemi? Grazie in anticipo e complimenti per il sito ed il forum!

  2. #2

    Re: [VB.NET] Problemi con "Undo" e "Now"

    Circa l'Undo ci dovresti dire come l'hai implementato; quanto all'altro problema probabilmente hai inserito una cosa di questo genere:
    codice:
    casellaDiTesto.Text = Date.Now.ToString()
    in questa maniera vai a sostituire tutto il testo contenuto nella tua casella di testo con il valore restituito da Date.Now; invece tu devi concatenare i due valori:
    codice:
    casellaDiTesto.Text += Date.Now.ToString()
    .
    P.S.: "Now" non è un comando, è una proprietà statica della struttura System.DateTime (di cui Date è in VB.NET una alias).
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Caspita, si vede proprio che sono alle prime armi!
    Comunque per quanto riguarda l'Undo, l'ho inserito così:

    codice:
    RichTextBox1.Undo()


    E per quanto riguarda Now, così:

    codice:
    RichTextBox1.Text = Now


    Quindi per far sì che alla fine del testo io voglia far apparire la data e l'ora dovrò scrivere:

    codice:
    RichTextBox1.Text += Now


    Giusto?

  4. #4
    Sì, anche se è più corretto scrivere
    codice:
    RichTextBox1.Text += Date.Now.ToString()
    .
    Ti ricordo inoltre che se non hai bisogno di lavorare con la formattazione del testo è inutile usare una RichTextBox (ti basta una normale TextBox), a meno di non lavorare con quantità molto grandi di testo.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463

    Moderazione

    Suggerisco di inserire una sola domanda all'interno di una discussione, se si tratta di problemi differenti.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  6. #6
    ok alka...
    Comunque grazie MItaly Solo, vorrei ancora delucidazioni su "Undo"...

  7. #7
    La modalità con cui lavora il metodo Undo non è modificabile ed è definita da Windows (di fatto il metodo System.Windows.Forms.TextBoxBase.Undo() invia alla casella di testo il messaggio EM_UNDO, di fatto è l'analogo di premere CTRL+Z in una qualunque casella di testo in Windows); se vuoi che funzioni in maniera differente devi implementarti da te una funzione Undo ad-hoc.
    Amaro C++, il gusto pieno dell'undefined behavior.

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