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

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

برای استفاده از رویداد KeyDown و keypress در سی شارپ که این دو رویداد از مهمترین رویدادهای تکست باکس در سی شارپ هستند، با استفاده از اين رويداد مي توان امكان استفاده از صفحه كليد را در نرم افزار طراحي كرد كه باعث سهولت كار با نرم افزار مي گردد.

در پنجره properties شئ مورد نظر(دكمه- تكست باكس و…) در قسمت event روي خاصيت keyDown دوبار كليك كرده تا وارد قسمت كدنويسي مربوط به 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 زماني استفاده مي شود كه بخواهيم نام دكمه را بنويسيم.

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

زماني كه بخواهيم با زدن يك كليد در فرم عمليات خاصي انجام شود( کلید میانبر در سی شارپ c# ) و روي هر ابزاري از فرم باشيم اين كليد عمل نمايد:

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

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

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

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

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData == Keys.Escape)
{
this.Close();
}
}

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

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

در رویداد keypress در سی شارپ بمحض فشردن کلید بلافاصله کد ارسال میشود به این معنی که هنوز دستمان را از روی کلید برنداشته ایم اما در رویداد keydown پس از برداشتن دست از روی دکمه این کد ارسال میشود.

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

 

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (Convert.ToInt32(e.KeyChar) == 13) 
    {
        MessageBox.Show(" Enter pressed ");
    }
}

در مثال بالا با فشردن کلید اینتر پیام نمایش داده میشود. ( کد enter در سی شارپ c# )