PDA

View Full Version : سوال: ایجاد پیغام خطا در صورت انگلیسی بودن کیبورد



reza.zarchi
چهارشنبه 08 خرداد 1392, 11:27 صبح
سلام
میخواستم بدونم کدی هست که باهاش وقتی در هنگام اجرای برنامه زبان کیبورد چیزی غیر از فارسی باشه، یک پیغام خطا بده که "کیبوردتان را فارسی کنید" یا اگه برای فارسی نمیشه بالعکسش یعنی در صورت فارسی بودن، پیغام بده؟
با تشکر

c-sharp_South
چهارشنبه 08 خرداد 1392, 12:13 عصر
سلام.
خیلی ساده است:


using System.Globalization;

private void Form1_Load(object sender, EventArgs e)
{
if (InputLanguage.CurrentInputLanguage == InputLanguage.FromCulture(new CultureInfo("fa-IR")))
{

}
{
this.Opacity = 0;
MessageBox.Show("Sory !!! \rWindows Can Not Open This Programm \rPlease Change Your Language To Persian And Try Again", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
Application.Exit();
}
}


کد this.Opacity = 0; برای این قبل از messgaebox قرار دادم چون بعد از اینکه msgbox نمایش داده شد و شما OK رو زدین ، قبل از بسته شدن برنامه برای یک لحظه Form برنامه نشان داده میشود.

البته میتونید برنامه رو با یک کار دیگه جالب تر کنید ( به پیشنهاد من ) !!!
از messagebox استفاده نکنید .از یک New Form استفاده کنید . توی این فرم با Label بگید که زبان ویندوز را فارسی کنید و سپس ورود را بزنید.
و بعدش توی کد ورود ، دوباره شرط رو تکرار کنید و اگه زبان فارسی شده بود وارد MainForm بشه.

یک کار دیگه هم که میشه کرد اینه که توی خود FormLoad بیایید کاری کنید که زبان برنامه به طور خودکار ( به محز اجرا فارسی بشه ) . البته این کار میتونه اشکالات خودش رو به همراه داشته باشه
شاید زبان فارسی روی سیستم اون شخص نصب نباشه :قهقهه:

موفق باشید :کف:

reza.zarchi
چهارشنبه 08 خرداد 1392, 17:33 عصر
خیلی ممنون
کمک بزرگی بهم کردی
من یه کاری کردم که اصلا دیگه زبان تغییر نکنه در Events فرم اصلی در رویداد InputLanguageChanged کد زیر براش تعریف کردم:

if (InputLanguage.CurrentInputLanguage != InputLanguage.FromCulture(new CultureInfo("fa-IR")))
{
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new CultureInfo("fa-IR"));
}