PDA

View Full Version : سوال: خطا در محدود کردن کاربر برای تایپ کاراکترهای فارسی



bahar1370
دوشنبه 09 مرداد 1396, 23:37 عصر
سلام از دستور زیر برای تایپ فارسی استفاده می کنم یعنی کاربر که متن رو تایپ می کنه اگر کیبورد فارسی نباشه پیغام خطا بده روی ویندوز xp و 7 کار می کنه ولی روی 8.1 , 10 نه هر چیه تایپ می کنم چه فارسی و چه انگلیسی همین پیام مسج باکس و میده..........
علت چیه به کد مربوط یا ویندوز؟؟؟؟ با تشکر



if (InputLanguage.CurrentInputLanguage.Culture.Displa yName != "Persian")
{
e.Handled = true;
MessageBox.Show("فارسی تایپ کنید", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}

MMR_1234
سه شنبه 10 مرداد 1396, 05:52 صبح
به جای نمایش خطا میتونی در صورت فعال نبودن کلید های فارسی اول اون رو فعال کنی

samiasoft
سه شنبه 10 مرداد 1396, 09:53 صبح
سلام از دستور زیر برای تایپ فارسی استفاده می کنم یعنی کاربر که متن رو تایپ می کنه اگر کیبورد فارسی نباشه پیغام خطا بده روی ویندوز xp و 7 کار می کنه ولی روی 8.1 , 10 نه هر چیه تایپ می کنم چه فارسی و چه انگلیسی همین پیام مسج باکس و میده..........
علت چیه به کد مربوط یا ویندوز؟؟؟؟ با تشکر



if (InputLanguage.CurrentInputLanguage.Culture.Displa yName != "Persian")
{
e.Handled = true;
MessageBox.Show("فارسی تایپ کنید", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}


اینی که نوشتید به نظرم عملی نیست !
الان در سیستم من به جای پرشین که نوشتین عبارت Persian (Iran) باید باشه. خب شاید کاربر در سیستم خودش باز این رو تغییر داده !

یه راه خوبی که به ذهن میرسه این هست که بیای کد اسکی کلید های انگلیسی رو دربیاری و وقتی خواست تایپ کنه جلوشو بگیری. برای اینکار صفحه زیر روببین ...
http://barnamenevis.org/showthread.php?275979-%D9%85%D8%AD%D8%AF%D9%88%D8%AF-%DA%A9%D8%B1%D8%AF%D9%86-%D8%AA%DA%A9%D8%B3%D8%AA-%D8%A8%D8%A7%DA%A9%D8%B3-%D8%A8%D8%A7-%DA%A9%D8%AF-%D8%A7%D8%B3%DA%A9%DB%8C-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D9%81%D9%82%D8%B7-%D8%AA%D8%A7%DB%8C%D9%BE-%D8%B4%D9%87

barnamenevisjavan
سه شنبه 10 مرداد 1396, 10:20 صبح
سلام از دستور زیر برای تایپ فارسی استفاده می کنم یعنی کاربر که متن رو تایپ می کنه اگر کیبورد فارسی نباشه پیغام خطا بده روی ویندوز xp و 7 کار می کنه ولی روی 8.1 , 10 نه هر چیه تایپ می کنم چه فارسی و چه انگلیسی همین پیام مسج باکس و میده..........
علت چیه به کد مربوط یا ویندوز؟؟؟؟ با تشکر



if (InputLanguage.CurrentInputLanguage.Culture.Displa yName != "Persian")
{
e.Handled = true;
MessageBox.Show("فارسی تایپ کنید", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}

از کد زیر استفاده کنید کالچر فارسی fa هستش
System.Globalization.CultureInfo TypeOfLanguage = new System.Globalization.CultureInfo("fa");
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(TypeOfLanguage);

shahryari
سه شنبه 10 مرداد 1396, 11:52 صبح
این راه از طریق کنترل کردن InputLanguage میسر نیست
چون ممکنه طرف کپی پیست کنه
باید کد اسکی کاراکتر هارو بگیری و اگه فارسی بود پیام بدی
کد اسکی بزرگتر از 127 باشه غیر انگلیسیه