بدست آوردن کد اسکی در سی شارپ
در این جلسه قصد داریم به موضوع بدست آوردن کد اسکی در سی شارپ بپردازیم برنامه ای بنویسیم که ورودی را دریافت کرده و کد اسکی آن را نمایش دهد و همچنین کاربرد کد اسکی در نمایش های مختلف را با مثال های متنوع بینیم(کد اسکی : ﯾﮑﯽ از شیوه های رایج ﮐﺪﮔﺰاری ﺣﺮوف، ارﻗﺎم و ﻋﻼﻣﺖ ﻫﺎ اﺳﺘﻔﺎده از ﮐﺪﻫﺎی اسکی اﺳﺖ. کلمه اسکی (ASCII) مخفف و کوتاه شده ی عبارت ” Standard Code for Information Interchange ” می باشد که به معنای ” استاندارد کد گذاری آمریکایی برای تبادل اطلاعات ” است .)
(تذکر:در جلسه اول با محیط ویندوز فرم آشنا شدیم و همچنین کار کردن با دستورات را در آموزش برنامه نویسی تحت کنسول آموزش دادیم لطفا اگر مبتدی هستید با این دو آموزش شروع کنید)
کنترل های مورد نیاز :
Label: متن “نمایش کد اسکی” در قسمت خصوصیات label قرار گیرد.
Textbox :رویداد Keypress آن را فعال می کنیم.
نحوه کدنویسی
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
//در این دستور هر نوع رشته یا عددی را وارد کنید کد اسکی آن را نمایش می دهد
label1.Text = ((int)e.KeyChar).ToString();
//یعنی هر کلیدی که از صفحه کلید فشار دادیم e
}
برنامه را اجرا می کنیم و خروجی برنامه به شکل زیر است :
برنامه ای بنویسید که داخل Textbox فقط اعداد وارد شوند و همچنین بتوان اعدا را پاک کرد؟
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
نوع event مربوط به textBox1 را در قسمت رویدادها، KeyPress انتخاب می کنیم.//
{
if (!((int)e.KeyChar>= 48 && (int)e.KeyChar<= 57|| (int)e.KeyChar == 8))
e.KeyChar = (char)27;
//یعنی یک کاراکتر پوچ است Esc معادل (char)27
}
برنامه ای بنویسید که داخل Textbox فقط اعداد و حروف فارسی تایپ شوند؟
private void textBox1_ KeyPress (object sender, KeyEventArgs e)
{
System.Globalization.CultureInfo Languge = new System.Globalization.CultureInfo(“fa-ir”);
InputLanguage.CurrentInputLanguage =InputLanguage.FromCulture(Languge);
}
این برنامه یک ایراد اساسی دارد آن هم این است که حروف اول را انگلیسی تایپ می کند برای رفع این مشکل باید به جای استفاده از رویداد KeyPress از رویداد KeyDown استفاده کرد .
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
System.Globalization.CultureInfo Languge = new System.Globalization.CultureInfo(“fa-ir”);
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(Languge);
}
توجه: گاهی اطلاعات دریافتی از سوی کاربران برای ثبت، حتما باید فارسی باشد. اطلاعاتی مانند نام و نام خانوادگی و … که به صورت فارسی باید وارد شود.
کلاس CultureInfo که از using یا کتابخانه Globalization می آید این کار را برای ما انجام می دهد .
با ساختن شیء از روی کلاس CultureInfo می توان کیبورد سیستم را از “EN” به “FA” و بالعکس تغییر داد. تا کاربر مجبور به تغییر کیبورد به صورت دستی نباشد (Alt + Shift) و سیستم به صورت آتوماتیک آماده ورود کاراکتر های فارسی است.
using System.Globalization;
Globalization فرایند طراحی برنامه های کاربردی به ازای زبان های مختلف کاربران در سراسر دنیا می باشد//
private void textbox1_KeyDown (object sender, KeyEventArgs e)
{
//برای فارسی کردن کیبورد
Languge یک شی است که از روی کلاس CultureInfo ساختیم (نام شی اختیاری می باشد)//
CultureInfo Languge = new CultureInfo(“fa-ir”);
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(Languge);
}
private void textbox2_KeyDown(object sender, KeyEventArgs e)
{
//برای انگلیسی کردن کیبورد
CultureInfo lng = new CultureInfo(“en-us”);
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(lng);
}
عالی بود
سلام کد فارسی رو میشه برام توضیح بدید؟
با سلام و عرض ادب
کاربر گرامی آموزش ویرایش شده، لطفا مطالعه فرمایید و اگر پاسخ خود را نیافتید، مجدد در قسمت دیدگاه به صورت جزئی تر سوال خود را مطرح کنید.
با تشکر از همراهی شما
بهترین نوع آموزشی بود ک دیده بودم
سلام و عرض ادب
ممنون از همراهی شما
using System.Globalization;
رو در کدام بخش وارد کنید key pressیا key down?
خوب و بدرد بخور بود. خیلی ممنوننننن
سلام.اولین کاراکتری که وارد میشه روبازم انگلیسی میزنه.من این کد را واردکردم درست شد ، ولی بازم اولین پرس کیبورد رو هیچی وارد نمیکنه.چجوری درست میشه؟
CultureInfo cul = new CultureInfo(“fa-ir”);
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(cul);
if (char.IsDigit((char)e.KeyChar) ||
(e.KeyChar >= ‘A’ && e.KeyChar = ‘a’ && e.KeyChar <= 'z'))
{
e.Handled = true;
}
سلام
لطفا کد اسکی enter را اگر امکانش هست بفرمایید