Odczytywanie dokładnie jednego znaku.

0

Witajcie potrzebuje odczytać jeden znak do char'a, ale nie wiem jaką metodą.
Chciałbym coś na wzór

Console.ReadKey();

tylko żebym mógł zapisać odczytaną wartość.
Chodzi mi też żeby nie było widać wpisywanej wartości, ponieważ próbuje zrobić coś na kształt menu.
@Edit
Może być też jakaś biblioteka, byle by działało ...

0

Już mogę pisać :) Czyli robisz ReadKey z parametrem true. Tyle do wymiany.

http://stackoverflow.com/questions/2484290/how-do-i-supress-keypress-being-printed-to-console-in-net

0

Dobra doszedłem do tego inną drogą, jeżeli by ktoś chciał zaraz opiszę jak :
Pobieram przestrzeń nazw za pomocą

using System.Runtime.InteropServices;

Potem w klasie dodaje coś takiego:

[DllImport("user32.dll")]
        static extern short GetKeyState(int nVirtKey);

I tworzę inna klasę z opisem klawiszy (Równie dobrze możemy pisać np. 0x80 lub zapisać zmienne w głównej klasie), nazwę ją VirtualKeys.cs. I dodam do niej mniej wiecej taki kod :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

        public static class VirtualKeys
        {
            public const int VK_UP = 0x26;
            public const int VK_DOWN = 0x28;
            public const int Keyboard_1 = 0x31;
            public const int NumPad_1 = 0x61; // Każdy dodaje tyle klawiszy ile potrzebuje :P
        }

Następnie za pomocą funkcji GetKeyState(int) sprawdzam czy dany klawisz jest wciśnięty.
więc w if'e będzie wyglądać to tak :

if ((GetKeyState(VirtualKeys.Keyboard_1) & 0x80) == 0x80)Console.WriteLine("1");
                

@Edit
Tutaj link do opisów klawiszy http://msdn.microsoft.com/en-us/library/dd375731%28VS.85%29.aspx

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.