+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 8 su 8

Codice sbagliato KeyValue

  1. #1
    L'avatar di glak
    glak non è in linea Scribacchino
    vorrei raggiungere questo scopo ma da errore ho letto che If KeyAscii = 13 Then si sostituisce con
    If e.KeyValue = 13 Then, in vb net come posso fare ?


    codice HTML:
     Private Sub PasswordTextBox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles PasswordTextBox.KeyPress
            OK.Visible = True ' Pulsante OK
            Cancel.Visible = True' Pulsante Cancel
            If e.KeyValue = 13 Then
                e.KeyValue = 0
                Call OK 'pulsante ok
            ElseIf e.KeyValue = 27 Then
                e.KeyValue = 0
                Me.Visible = False
            End If
    
        End Sub
    Non capisco il motivo !, MI spiegate dove sbaglio ?

  2. #2
    Se vuoi usare .KeyValue devi usare gli Eventi KeyDown o KeyUp, quando usi l'evento KeyPress hai a disposizione .KeyChar

    Se usi KeyDown:

            OK.Visible = True ' Pulsante OK
            Cancel.Visible = True ' Pulsante Cancel
            If e.KeyValue = 13 Then
                e.Handled = True
                Call OK() 'pulsante ok
            ElseIf e.KeyValue = 27 Then
                e.Handled = True
                Me.Visible = False
            End If
    
    Se usi KeyPress:

            OK.Visible = True ' Pulsante OK
            Cancel.Visible = True ' Pulsante Cancel
            If e.KeyChar = Chr(13) Then
                e.Handled = True
                Call OK() 'pulsante ok
            ElseIf e.KeyChar = Chr(27) Then
                e.Handled = True
                Me.Visible = False
            End If
    
    Ultima modifica di Fix; 30-01-2011 09:44  Motivo: Corretto e.Handled
    ℹ️ Leggi di più su Fix ...

  3. #3
    Quote Originariamente inviato da glak Visualizza il messaggio
    vorrei raggiungere questo scopo ma da errore ho letto che If KeyAscii = 13 Then si sostituisce con
    If e.KeyValue = 13 Then, in vb net come posso fare ?


    codice HTML:
     Private Sub PasswordTextBox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles PasswordTextBox.KeyPress
            OK.Visible = True ' Pulsante OK
            Cancel.Visible = True' Pulsante Cancel
            If e.KeyValue = 13 Then
                e.KeyValue = 0
                Call OK 'pulsante ok
            ElseIf e.KeyValue = 27 Then
                e.KeyValue = 0
                Me.Visible = False
            End If
    
        End Sub
    Non capisco il motivo !, MI spiegate dove sbaglio ?
    Stai programmando in VB.NET, alla VB6. A che servono i codici numerici dei tasti quando con l'Enum Keys puoi identificarli uno per uno comodamente ?
    A che serve l'istruzione Call ?
    KeyValue è ReadOnly : non lo puoi assegnare così.

        Private Sub PasswordTextBox_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles PasswordTextBox.KeyDown
    
            OK.Visible = True ' Pulsante OK
            Cancel.Visible = True ' Pulsante Cancel
            If e.KeyValue = Keys.Return Then
                e.Handled = True
                OK.PerformClick()
            ElseIf e.KeyValue = Keys.Escape Then
                e.Handled = True
                Me.Visible = False
            End If
    
        End Sub
    
    ℹ️ Leggi di più su MarcoGG ...

  4. #4
    L'avatar di glak
    glak non è in linea Scribacchino
    Grazie della delucidazione siete dei ragazzi in gamba come sempre, ora ho capito il concetto

  5. #5
    L'avatar di gibra
    gibra non è in linea Very Important Person
    Quote Originariamente inviato da MarcoGG Visualizza il messaggio
    Stai programmando in VB.NET, alla VB6.
    Concordo al 100%.

    @glak
    Ho seguito alcune delle discussioni che hai aperto, e se posso permettermi un consiglio...

    A mio avviso, ti conviene dedicare un po' più di tempo a consultare (studiare) la guida, perchè se devi interpellare un forum per questioni così semplici, mi chiedo come farai a quando avrai a che fare con questioni più complesse?

    Lo abbiamo già visto tutti sul forum, con le discussioni sulle carte, dove tutti ti hanno consigliato di dirigeri i tuoi sforzi verso un progetto meno complesso, più alla tua portata.

    Concorderai che voler impostare il e.KeyValue, che è a sola lettura, in un evento KeyPress in cui non esiste tale proprietà significa scrivere codice senza aver mai aperto la guida, oltretutto non tenendo nemmeno conto delle segnalazioni di errore che l'ambiente di progettazione stesso ti fornisce.

    Questo ti porta a commettere errori macroscopici.

    Secondo me questo modo di approcciarsi alla programmazione è deleterio, per te, perchè alla fin fine i concetti devono essere studiati, altrimenti scriverai sempre codice 'a naso' come stai facendo ora, con conseguente frustazione.

    Consultare la guida è anche un modo per prendere confidenza con il linguaggio, i termini usati, la filosofia del NET, etc. e queste sono determinanti alla comprensione del linguaggio, per prendere una padronanza sempre maggiore.

    Nturalmente questa è IMHO
    Poi tu sei libero di fare come meglio credi.

    ℹ️ Leggi di più su gibra ...

  6. #6
    L'avatar di glak
    glak non è in linea Scribacchino
    che libro mi consigli ?, visto che qui siete tutti professori, confronto a me !

  7. #7
    Comincia a leggere questa guida PASSO-PASSO....

    inizia dall'introduzione e vai avanti pagina dopo pagina... (fermandoti a ragionare su quanto letto)

    LINK: Totem's Lair: Guida al Visual Basic .NET 2005/2008
    ℹ️ Leggi di più su Fix ...

  8. #8
    L'avatar di gibra
    gibra non è in linea Very Important Person
    Quote Originariamente inviato da glak Visualizza il messaggio
    che libro mi consigli ?, visto che qui siete tutti professori, confronto a me !
    Di libri ce ne sono a pacchi, ne basta uno qualsiasi per le basi.
    Ma ricordati che la guida ufficiale è la base di partenza insostituibile, basta e avanza per imparare le basi del linguaggio.
    Io la consulto continuamente, perchè non si finisce mai di imparare.
    Tra l'altro la guida di VS2010 è assai meglio gestibile (finalmente) rispetto alle precedenti versioni (IMHO).

    I libri, di norma, si comprano quando ci si vuole addentrare più a fondo in argomenti specifici, come ad esempio i database ADO.NET, i vari LINQ to xx, etc...
    Allora in questo caso la scelta del testo può essere fondamentale, ma comunque non ci si limita mai ad un solo libro, ma a più libri perchè ciascun autore può spiegare le cose da un'ottica diversa.

    Concordo con Fix riguardo alla guida di Totemslair, ma in genere è difficile trovare guide su internet sempre aggiornate e quindi prima di 'seguire' una guida occorre andare sempre a verificare quanto sia effettivamente aggiornata.
    Questo vale anche per le ricerche perchè è normale trovare più risultati su una vecchia la tecnologia piuttosto che una nuova (è una questione di numeri).

    Tieni anche presente che una guida su internet difficilmente tratta gli argomenti in modo esauriente, più che guide io li reputo tutorial; è sicuramente utile per avere un'infarinatura generale.

    Personalmente prediligo sempre un testo tecnico che approfondisce gli aspetti ed i concetti in maniera più approfondita.


    ℹ️ Leggi di più su gibra ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. ordinamento numerico sbagliato
    Da Valter015 nel forum Microsoft Excel
    Risposte: 5
    Ultimo Post: 11-08-2020, 09:08
  2. cosa c'è di sbagliato in questo codice?
    Da killer nel forum Visual Basic 6
    Risposte: 5
    Ultimo Post: 27-06-2011, 23:02
  3. Cosa c'è di sbagliato in questo codice??
    Da mason89 nel forum C/C++
    Risposte: 0
    Ultimo Post: 03-04-2011, 17:37
  4. [ACCESS] CODICE GIUSTO ma risultato sbagliato
    Da Maresca14 nel forum Microsoft Access
    Risposte: 3
    Ultimo Post: 06-09-2008, 20:20
  5. Che c’è di sbagliato in questo codice??
    Da gilmour nel forum Microsoft Word
    Risposte: 29
    Ultimo Post: 14-09-2005, 18:06