Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [C#] Enumerazione Keys

  1. #1
    Utente di HTML.it L'avatar di escocat
    Registrato dal
    Feb 2012
    Messaggi
    308

    [C#] Enumerazione Keys

    Salve. Avrei potuto "attaccarmi" al post che tratta di Key.Up Key.Down ecc. perchè la mia domanda riguarda l'enumerazione Keys, ma - se ho ben capito il protocollo di questo forum - è più giusto che io apra un post specifico. La mia domanda è questa: tra tutti i membri dell'enumerazione Keys non trovo i codici dei tasti numerici 0, 1, 2, 3 ecc. Come devo fare per riferirmi a questi? Quale sarebbe la sintassi per

    if (KeyState.IsKeyDown(Keys.1))

    ....? Grazie.

  2. #2
    Utente di HTML.it L'avatar di IAL32
    Registrato dal
    Aug 2011
    Messaggi
    88
    ( Istruzione Enum ): come dice la pagina, le enumerazioni sono Un set di valori fissi correlati tra loro in modo logico.

    L'enumerazione Keys non diffide da questa descrizione. Al membro Keys.Escape per esempio, è stato assegnato un valore numerico, corrispondente a quello che assume il tasto.
    Per ottenere la char caratteristica dall'enumerazione Keys, si fa così:
    codice:
    char Lettera = Chr(Keys.<membro>);
    Per ottenere dalla Char il valore numerico che corrisponde ad essa, si fa:
    codice:
    int CharCode = Asc("<char>"c);
    Ho compreso male la tua domanda, MItaly ha risposto correttamente

  3. #3

    Re: [C#] Enumerazione Keys

    Originariamente inviato da escocat
    tra tutti i membri dell'enumerazione Keys non trovo i codici dei tasti numerici 0, 1, 2, 3 ecc. Come devo fare per riferirmi a questi?
    Come specificato nella documentazione, i tasti numerici da 0 a 9 corrispondono ai valori Keys.D0-Keys.D9 ("D" sta per digits) e Keys.NumPad0-Keys.NumPad9 (per quelli del tastierino numerico).
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Originariamente inviato da IAL32
    Per ottenere la char caratteristica dall'enumerazione Keys, si fa così:
    codice:
    char Lettera = Chr(Keys.<membro>);
    Per ottenere dalla Char il valore numerico che corrisponde ad essa, si fa:
    codice:
    int CharCode = Asc("<char>"c);
    Spero di esserti stato d'aiuto
    Occhio, stai confondendo due cose molto diverse.
    Chr e Asc convertono da codice carattere a carattere (e viceversa) usando il codepage ANSI correntemente impostato per l'applicazione; i codici dell'enumerazione Keys, invece si riferiscono ai tasti della tastiera, che a priori non c'entrano nulla con i codici del codepage ANSI - proprio perché si riferiscono a cose diverse.

    Un esempio: i codici ANSI esistono ovviamente sia per le maiuscole che per le minuscole, mentre per i codici di tastiera ci sono solo le sole lettere maiuscole (dato che sulla tastiera non ci sono tasti separati per maiuscole e minuscole); nei codici ANSI ci sono i codici per i numeri da 0 a 9, mentre in quelli di tastiera ci sono raddoppiati, per tenere conto sia dei numeri nella tastiera "normale", sia di quelli del tastierino numerico.

    Per questo motivo il mapping da codici di tastiera a caratteri non è così immediato, e richiede di conoscere non solo il tasto premuto, ma anche lo stato dei tasti modificatori e degli eventuali dead keys.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it L'avatar di escocat
    Registrato dal
    Feb 2012
    Messaggi
    308
    Ma cose da pazzi! Uno senza volerlo fa queste figure di cacca? Ti giuro che - ovviamente - la prima cosa che ho fatto è leggere la documentazione, ma non c'era scritto questo! Trovavo scritto

    D0 Used for miscellaneous characters; it can vary by keyboard.
    D1 Used for miscellaneous characters; it can vary by keyboard.
    D2 Used for miscellaneous characters; it can vary by keyboard.
    D3 Used for miscellaneous characters; it can vary by keyboard.
    D4 Used for miscellaneous characters; it can vary by keyboard.
    D5 Used for miscellaneous characters; it can vary by keyboard.
    D6 Used for miscellaneous characters; it can vary by keyboard.
    D7 Used for miscellaneous characters; it can vary by keyboard.
    D8 Used for miscellaneous characters; it can vary by keyboard.
    D9 Used for miscellaneous characters; it can vary by keyboard.

    Vai a capire che erano proprio loro! Forse sbagliavo versione di Framework o forse guardavo la documentazione Xna.... mah! Grazie tante a tutti!

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.