رویداد KeyDown در سی شارپ

با استفاده از اين رويداد مي توان امكان استفاده از صفحه كليد را در نرم افزار طراحي كرد كه باعث سهولت كار با نرم افزار مي گردد.

در پنجره properties شئ مورد نظر(دكمه- تكست باكس و…) در قسمت event روي خاصيت  keyDown  دوبار كليك كرده تا وارد قسمت كدنويسي مربوط به keyDown   شويم و آن را برابر با كليدي كه مي خواهيم قرار مي دهيم يعني وقتي كليد فشرده شد عمليات داخل شرط اجرا شود.

private void textBox1_KeyDown(object sender, KeyEventArgs e)

        {

            if(e.KeyData == Keys.Enter)   MessageBox.Show(“hello ” + textBox1.Text);

        }

در این مثال کاربر با فشردن کلید اینتر از صفحه کلید در تکست باکس 1 پیامی حاوی کلمه hello و مقدار درون تکست باکس نشان داده میشود.

تفاوت KeyData و KeyValue :

اگر بخواهيم كد دكمه را بنويسيم از KeyValue استفاده مي كنيم و از KeyData زماني استفاده مي شود كه بخواهيم نام دكمه را بنويسيم.

تنظيم كليد ميانبر روي تمام ابزارهاي فرم

زماني كه بخواهيم با زدن يك كليد در فرم عمليات خاصي انجام شود و روي هر ابزاري از فرم باشيم اين كليد عمل نمايد:

  1. خاصيت keyPreview مربوط به فرم را True مي كنيم

  2. در پنجره properties در قسمت eventها روي keyDown دوبار كليك كرده تا وارد قسمت كدنويسي ان شويم

  3. و داخل آن مي نويسيم كه اگر كليدي كه مي خواهيم فشرده شد عمليات داخل شرط اجرا شود

مثال: در اين مثال با فشرده شدن كليد Esc پنجره بسته مي شود:

private void Form1_KeyDown(object sender, KeyEventArgs e)

        {

            if (e.KeyData == Keys.Escape)

            {

                this.Close();

            }

        }

7 دیدگاه ها

  1. محمد مسیعود خانی گفت:

    اگه بخواهیم رویداد های روز رو بنویسیم باید چه کار کنیم

  2. ناشناس گفت:

    عالی بود ممنون

  3. مریم گفت:

    سلام
    اگه بخوایم یه ماشین حساب طراحی کنیم که از صفحه کلید استفاده کنه چکار باید بکنیم؟

  4. ناشناس گفت:

    اگه بخوایم با زدن اینتر مثلا در فرم لوگین باتن 1 کار کند یعنی به جای اینکه با موس روی باتن کلیک کنیم با اینتر بزنیم کد ان چیه میخوام با یه بار اینتر وارد بشه با فوکوس کردن رو باتن باید دو بار کلیک کنیم
    if (e.KeyValue == 13)
    button1.Focus = true;
    خیلی ممنون

    • حسین گفت:

      میتونید سه تا تکست باکس قرار بدید (ورودی اول،دوم و حاصل عملیات) یک کامبوباکس(انتخاب نوع عملیات) و یک دکمه مساوی که در رویداد آن با توجه به عملیات انتخاب شده در کامبوباکس کدهای لازم را می نویسید و حاصل را در تکست باکس سوم قرار میدین.

    • کیان اکبرپور گفت:

      سلام برای این اموزش با تلگرام ما در ارتباط باشید
      https://telegram.me/delta_system_toos