مستر کد
mrcode.wikibix.ir

کاربرد readkey در سی شارپ

نویسنده : مینا علی زاده | زمان انتشار : 05 دی 1400 ساعت 21:22

جهت انجام پروژه های دانشجویی و یا تمرین‌های برنامه نویسی رشته کامپیوتر میتوانید به آی دی تلگرام زیر پیام دهید

@AlirezaSepand



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

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

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

خروجی 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 را وارد کرده اید

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


منبع: w3web.persianblog.ir