این رویداد زمانی اجرا میشود که کاربر در داخل TextBox کلیک کند. باید برخی از نکات مهم را پیش از شروع یک مثال واقعی درک کنید.حال برای درک بهتر این رویداد با من در ادامه ی مطلب همراه باشید .
رویداد KeyPress در C#
۱ – e.Keychar یک Property است که کاراکتر های وارد شده توسط کیبورد را ذخیره میکند. زمانی که یک کلید زده میشود ، آن کاراکتر تحت شئ e در یک Property با نام Keychar ذخیره میشود و در انتهای رویداد keypress کاراکتر در داخل TextBox نمایش داده میشود.
۲ – e.Handled یک Property است که true تعریف شده است و کاراکتر را از Property پاک میکند.
Indexof() : شماره ی index اولین وقوع حرف موردنظر در رشته را بازمیگرداند.
یادداشت :
اگر کاراکتر در آن رشته وجود نداشت -۱ بازمیگرداند.
Example1 :
Form8.cs[Design]
Form8.cs (فایل Code Behind)
private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { string st = "0123456789"+(char)8; if(st.IndexOf(e.KeyChar)==-1) { MessageBox.Show("سلام تست میکنم"); e.Handled = true; } }
یادداشت :
مقدار ASCII کلید Backspace برابر ۸ میباشد. در کیبورد های ما ، هر کلید دارای یک مقدار ASCII است ، اما به خاطر سپردن تک تک آنها بسیار سخت است.
مایکروسافت کلاسی بنام keys را معرفی کرده است. با استفاده از کلاس Key میتوانید به راحتی مقدار ASCII را تشخیص دهید.
Example 2:
(همان مثال یالا اما در اینجا من از یک تابع از پیش آماده استفاده میکنم)
مایکروسافت یک تابع از پیش تعریف شده بنام IsDigit() ارائه داده است. با استفاده از این تابع میتوانید به راحتی داده را معتبر کنید ؛ چه رقم وارد شده باشد و چه نشده باشد.
private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { if (!(Char.IsDigit(e.KeyChar) || (e.KeyChar == (char)Keys.Back))) { MessageBox.Show("سلام تست میکنم"); e.Handled = true; } }
ممنون از شما برای خواندن این مقاله
نظراتتون رو با من درمیون بگذارید.
موفق باشید.
ممنون از اینکه بیان کردید که هر کدام از نام های استفاده شده مربوط به چه بخشی میشوند و کارشان چیست.
۱۰