PDA

View Full Version : سوال: کد تغییر زبان نوشتن فقط در یک برنامه، نه کل سیستم



bili.koote
پنج شنبه 13 مهر 1391, 14:17 عصر
سلام:لبخندساده:
من یه سؤال راجع به تغییر زبان نوشتن توسط کد دارم. من این کد رو نوشتم :

InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(System.Globalization.Cul tureInfo.CreateSpecificCulture("fa-IR"));
ولی وقتی اجرا میشه زبان نوشتن تو کل سیستم تغییر می کنه مثلا اگه داخل برنامه زبان رو از انگلیسی بذارم روی فارسی ، توی نرم افزار های دیگه مثل Word هم زبان فارسی میشه و فارسی تایپ می کنه. اما من می خوام زبان نوشتن فقط داخل همون یه برنامه تغییر کنه. اگه میشه بگید چه جوری باید کدش رو بنویسم .
مرسی:قلب:

danialafshari
پنج شنبه 13 مهر 1391, 14:54 عصر
خیلی راحت می تونی در رویداد Activated فورمت بنویسی

private void Form1_Activated(object sender, EventArgs e)
{
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(System.Globalization.Cul tureInfo.CreateSpecificCulture("fa-IR"));

}


موفق باشی

bili.koote
پنج شنبه 13 مهر 1391, 15:21 عصر
خیلی راحت می تونی در رویداد Activated فورمت بنویسی

private void Form1_Activated(object sender, EventArgs e)
{
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(System.Globalization.Cul tureInfo.CreateSpecificCulture("fa-IR"));

}


موفق باشی
-------------------------------------------------------------------------------------------------------
ممنون از راهنماییت :لبخندساده:
فقط یه سوال دیگه : رویداد اکتیو یعنی فرمی که من روش کلیک کردم ؟ اون وقت اگه مثلا واسه چند تا از تکست باکس های وسط فرم بخوام زبان نوشتن یه چیز دیگه باشه ، بعد دوباره فارسی شه چی ؟؟

harani
پنج شنبه 13 مهر 1391, 16:14 عصر
یعنی میخوای برنامت فقط فارسی تایپ کنه ؟؟؟؟؟؟؟

bili.koote
شنبه 15 مهر 1391, 03:14 صبح
یعنی میخوای برنامت فقط فارسی تایپ کنه ؟؟؟؟؟؟؟
================================================== ==========================
می خوام وقتی زبان نوشتن رو تغییر میدم فقط داخل این برنامه تغییر کنه و تو برنامه های دیگه تأثیر نداشته باشه.
داخل فرم های همین برنامه هم نمی خوام همه چیز فارسی باشه، بعضی از فیلد ها می خوام پیش فرض زبانش انگلیسی باشه و بعضی از فیلد ها هم زبان پیش فرضش فارسی باشه.

malihehshajari
یک شنبه 16 مهر 1391, 15:26 عصر
کسی میدونه چطوری میشه برای هر تکست باکس زبان پیش فرض تعیین کرد که کاربر نیاز نباشه برای تایپ زبان روخودش تغییر بده
با تشکر

NasimBamdad
یک شنبه 16 مهر 1391, 15:39 عصر
کسی میدونه چطوری میشه برای هر تکست باکس زبان پیش فرض تعیین کرد که کاربر نیاز نباشه برای تایپ زبان روخودش تغییر بده
با تشکر

مگه اینکه وقتی از تکس باکس به تکس باکس دیگه میری زبان رو تغییر بدی . مثلا این طوری :

if (text1.focous ==true)
input language ....
)

دنبال این طور کدی باش !

malihehshajari
یک شنبه 16 مهر 1391, 15:51 عصر
مگه اینکه وقتی از تکس باکس به تکس باکس دیگه میری زبان رو تغییر بدی . مثلا این طوری :

if (text1.focous ==true)
input language ....
)

دنبال این طور کدی باش !

میشه بیشتر توضیح بدید

NasimBamdad
دوشنبه 17 مهر 1391, 15:56 عصر
یک قطعه کد مثل زیر بنویس اول :

if(text1.focus == true)
{
InputLanguage.CurrentInput Language = InputLanguage.FromCulture(System.Globalization.Cul tureInfo.CreateSpecificCulture("fa-IR"));

}
else if ( textbox.focus )
{
InputLanguage.CurrentInput Language = InputLanguage.FromCulture(System.Globalization.Cul tureInfo.CreateSpecificCulture("fa-IR"));
}

بعد وقتی بین کنترل ها حرکت می کنی این تابع رو صدا بزن .

bili.koote
سه شنبه 18 مهر 1391, 21:31 عصر
مگه اینکه وقتی از تکس باکس به تکس باکس دیگه میری زبان رو تغییر بدی . مثلا این طوری :

if (text1.focous ==true)
input language ....
)

دنبال این طور کدی باش !
================================================== ===============
سلام. میشه بگید focus شامل چه حالت هایی میشه ؟

NasimBamdad
چهارشنبه 19 مهر 1391, 09:37 صبح
================================================== ===============
سلام. میشه بگید focus شامل چه حالت هایی میشه ؟

عزیز دل برادر Forcus که حالت نداره . معنیش اینه اگه اشارگر ، چه طوری بگم یعنی اگه اشارگر روی اون تکس باکس بود ، یعنی روش Focus شده .


کدم رو اصلاح می کنم . از این کد استفاده کن


if (textBox1.Focused)
{
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(System.Globalization.Cul tureInfo.CreateSpecificCulture("fa-IR"));
}
else if (textBox2.Focused)
{
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(System.Globalization.Cul tureInfo.CreateSpecificCulture("fa-IR"));
}

mohamadlvs
چهارشنبه 19 مهر 1391, 10:04 صبح
من از کد زیر استفاده می کنم .فقط در سطح برنامه ای که استفاده می کنی زبان به فارسی تغییر میکنه.
using System.Runtime.InteropServices;
MyApi2.LoadKeyboardLayoutA("00000429", 1);
public class MyApi2
{
[DllImport("User32.dll")]
public static extern int LoadKeyboardLayoutA(string pwszKLID, int flag);
}

یا تایپیک زیر را ببینید
http://barnamenevis.org/showthread.php?349981-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%DA%A9%D8%B1%D8%AF%D9%86-%DA%A9%DB%8C%D8%A8%D9%88%D8%B1%D8%AF-%D8%AF%D8%B1-%D9%88%DB%8C%D9%86%D8%AF%D9%88%D8%B2-7&highlight=%D8%B2%D8%A8%D8%A7%D9%86

Nima_kyan
چهارشنبه 19 مهر 1391, 11:41 صبح
کسی میدونه چطوری میشه برای هر تکست باکس زبان پیش فرض تعیین کرد که کاربر نیاز نباشه برای تایپ زبان روخودش تغییر بده
با تشکر
دوستان راهنمایی کردن. فقط واسه تکمیل پیشنهادها ساده ترین روشش به این شکله.

private void textBox1_Enter(object sender, EventArgs e)
{
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(System.Globalization.Cul tureInfo.CreateSpecificCulture("fa-IR"));
}
یعنی تو رویداد Enter هر TextBox هر زبانی که خواستیم رو براش تعریف کنیم

bili.koote
چهارشنبه 19 مهر 1391, 22:45 عصر
ببخشید ! من متوجه نشدم رویداد click , Focus , keydown ,Enter چه تفاوتی با هم دارن ؟؟
1-رویداد اینتر یعنی روی اون تکست باکس دکمه ی اینتر زده بشه ؟
2- اگه بخوام یه کد وقتی با دکمه ی tab به تکست باکس میرسم اجرا شه از keydown باید استفاده کنم؟
3-Focus یعنی از هر طریقی (چه تب، چه کلیک، چه فلش ها ) اشاره گر رو به تکست باکس رسوندم ؟؟

Nima_kyan
چهارشنبه 19 مهر 1391, 23:24 عصر
ببخشید ! من متوجه نشدم رویداد click , Focus , keydown ,Enter چه تفاوتی با هم دارن ؟؟
1-رویداد اینتر یعنی روی اون تکست باکس دکمه ی اینتر زده بشه ؟
2- اگه بخوام یه کد وقتی با دکمه ی tab به تکست باکس میرسم اجرا شه از keydown باید استفاده کنم؟
3-Focus یعنی از هر طریقی (چه تب، چه کلیک، چه فلش ها ) اشاره گر رو به تکست باکس رسوندم ؟؟
Focus که اصلا رویداد نیستش.
شما با نوشتن کدتون داخل رویداد Enter به هر روشی که وارد TextBox شین اون کد اجرا خواهد شد.(چه از طریق کلید Tab یا کلید Enter و یا با کلیک موس)
در واقع رویداد Enter زمانی اتفاق میوفته که TextBox انتخاب شه