+2 امتیاز
سلام دوستان من میخوام کاربر هر کلیدی از کیبورد رو فشار داد مقدار اون کلید برای من برگشت داده بشه (نمایش در یک لیبل)

3 پاسخ

+3 امتیاز
+2 امتیاز

سلام .

میتونید از این لینک کمک بگیرید .

ابتدا یه متغیر به شکل زیر بنویسید .

[System.Runtime.InteropServices.DllImport("user32")]
        static extern int GetAsyncKeyState(long vkey);

سپس یه تایمر اضافه کنید و خاصیت Enable آن را برابر True قرار دهید و در رویداد Tick آن کد های زیر را بنویسید

int code;
            for (long i = 1; i <= 255; i++)
            {
                code = 0;
                code = GetAsyncKeyState(i);
                if (code != 0 & i != 255)
                {

                    label2.Text = i.ToString();
                }
            }

مشاهده میکنید با هر بار فشردن کلید ها کد اسکی آن در لیبل نمایش داده میشود

+3 امتیاز

سلام.

یک لیبل رو فرمتون قرار بدین  رویداد keydown فرمتون رو به این صورت تغییر بدید:

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
     label1.Text = e.KeyValue.ToString();
}

از رویداد keyPress استفاده نکنید به دلیل اینکه با فشردن بعضی کلیدها این رویداد رخ نمیدهد.

 

توجه داشته باشید که این مقدار هر کلید را بر میگرداند نه کد اسکی.
توسط (2,595 امتیاز) 5 15 90
سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,924 کاربر

دسته بندی ها

...