درون پرانتز این متد خالی است

این متد فقط برای دریافت یک کاراکتر بکار می رود . 

 

این متد می تواند کلیدهای عددی ماشین حساب ، کلیدهای عددی بالای حروف ،کلیدهای تابعی ،  کلیدهای حرفی ، و ترکیب کلیدهای کنترلی با سایر کلیدها را تشخیص دهد

 

خروجی readkey چیست ؟

 

این متد نمونه ای از شی ConsoleKeyInfo  را بر می گرداند .

پس  خود کاراکتر فشرده شده را بر نمی گرداند

 

چطور از readkey استفاده کنیم ؟

 

 

* ابتدا نمونه ای از ConsoleKeyInfo  را تعریف کنیم

* سپس مقدار بازگشتی  readkey  را در نمونه قرار می دهیم 

* در نهایت از ویژگیهای این نمونه برای تشخیص ورودی استفاده کنیم

 

 

==========================================

 

مثال )

 

در اینجا متغیری به نام info را تعریف می کنیم


         ConsoleKeyInfo info = Console.ReadKey();

 

 

 

ویژگی KeyChar

 

کاراکتر فشره شده در این ویژگی قرار می گیرد

 

مثال )با readkey ، کلیدی را دریافت کرده و کاراکتر انرا نمایش دهید

 public static void Main()
        {
           

            ConsoleKeyInfo info = Console.ReadKey();

            char s = info.KeyChar;

            Console.Write(s);

            Console.ReadKey();


        }

 

 

 

ویژگی  Modifiers

 

 

هر وقت با فشردن کلیدها ی دیگر ، یکی یا چند تا از کلیدهای ترکیبی را هم فشردید ، نام ان کلیدها ی ترکیبی به همراه کاراکتر درخواست شده در Modifiers  قرار می گیرند




مثال 1 )

برنامه زیر را اجرا کنید و خروجی modifires را ببنید

 

 

public static void Main()
        {
                ConsoleKeyInfo cki;
                     
                cki = Console.ReadKey();

                Console.Write(cki.Modifiers);


                Console.ReadKey();

        }

برای مثال :

کلید 2 را به تنهایی فشار دهید

خروجی

20

صفر یعنی هیچیک از کلیدهای ترکیبی فشرده نشده است

 

کلید 2 را با alt فشار دهید

خروجی

2alt

یعنی شما کاراکتر 2 را در خواست کرده اید و همزمان alt هم فشرده شده است

 

===========================================


به مثال زیر توجه کنید :

در این برنامه با یک پیام نشان داده می شود که کدام یک از کلیدهای ترکیبی و هزمان با کدام کلید دیگر ، فشرده شده است


public static void Main()

        {


            ConsoleKeyInfo cki;
            
            Console.TreatControlCAsInput = true;

            Console.WriteLine("Press any combination of CTL, ALT, and SHIFT, and a console key.");
            Console.WriteLine("Press the Escape (Esc) key to quit: \n");
            do
            {
                cki = Console.ReadKey();
                Console.Write(" --- You pressed ");
                if ((cki.Modifiers & ConsoleModifiers.Alt) != 0) Console.Write("ALT+");
                if ((cki.Modifiers & ConsoleModifiers.Shift) != 0) Console.Write("SHIFT+");
                if ((cki.Modifiers & ConsoleModifiers.Control) != 0) Console.Write("CTL+");
                Console.WriteLine(cki.Key.ToString());
            } while (cki.Key != ConsoleKey.Escape);
        }

 

 

 

=========================================

 

ویژگی key

 

این ویژگی با جزئیات بیشتری  مشخص می کند که کدام کلید را فشرده اید

 

مثال )

برنامه زیر را اجرا کنید :

 

 public static void Main()
        {
                ConsoleKeyInfo cki;
                     
                cki = Console.ReadKey();

                Console.Write(cki.Key);


                Console.ReadKey();

        }

 

کلید e را فشار دهید

خروجی :

eE

 

کلید 2 قسمت عددهای بالای حروف را فشار دهید

خروجی :

2D

 D در اینجا به معنی این است که کلد 2 بخش عددی را فشرده اید

 

کلید 2 بخش ماشین حساب را فشار دهید

خروجی :

2NUMPAD2

یعنی با فشرد ن کلید 2 بخش ماشین حساب کاراکتر 2 را وارد کرده اید

 

============================================