2013-06-21 4 views
7

मेरे पास सी # में एक विनफॉर्म एप्लिकेशन है और मैं चाहता हूं कि टेक्स्टबॉक्स स्वचालित रूप से फ़ोकस हो जाने पर भाषा को बदलना चाहें।स्वचालित रूप से टेक्स्टबॉक्स की भाषा को कैसे बदलें

मैं इस कोड की कोशिश की:

private void textBox1_Enter(object sender, EventArgs e) 
{ 
    SetKeyboardLayout(GetInputLanguageByName("fa")); 
} 
private void textBox1_Leave(object sender, EventArgs e) 
{ 
    SetKeyboardLayout(GetInputLanguageByName("eng")); 
} 
public static InputLanguage GetInputLanguageByName(string inputName) 
{ 
    foreach (InputLanguage lang in InputLanguage.InstalledInputLanguages) 
    { 
     if (lang.Culture.EnglishName.ToLower().StartsWith(inputName)) 
     { 
      return lang; 
     } 
    } 
    return null; 
} 
private void SetKeyboardLayout(InputLanguage layout) 
{ 
    InputLanguage.CurrentInputLanguage = layout; 
} 

लेकिन जब मैं पाठ बॉक्स में प्रवेश, भाषा नहीं बदलता है। मैं क्या कर सकता हूँ?

+6

"यह काम नहीं किया" समस्या का वर्णन का एक स्वीकार्य तरीका नहीं है। कृपया अधिक जानकारी प्रदान करें। –

+2

जब मैं टेक्स्टबॉक्स दर्ज करता हूं, भाषा बदलती नहीं है। – amirhossein

+0

फिर अपने प्रश्न में ऐसा कहें, इसलिए लोगों को समस्या का पता लगाने के लिए टिप्पणियां पढ़ने की ज़रूरत नहीं है। –

उत्तर

4

हालात की जाँच करने के:

  1. "पिता" एक स्थापित भाषा है?
  2. क्या आपने टेक्स्टबॉक्स 1_इंटर और टेक्स्टबॉक्स 1 संलग्न किया है टेक्स्टबॉक्स 1 द्वारा प्रेषित घटनाओं को छोड़ दें?
  3. क्या आपने इसे डीबगर के माध्यम से चलाया है और GetInputLanguageByName को चेक किया है और फोकस प्राप्त होने और खो जाने पर सही भाषा कहा जाता है?
+1

उत्तर 1 हाँ है। "एफए" एक स्थापित भाषा है लेकिन मैं सबसे अधिक "फारसी" का उपयोग करता हूं; 2 का उत्तर नहीं है, मैं घटनाओं से जुड़ा नहीं हूं लेकिन अब मैं इसे कर चुका हूं। यह काम किया। मैं आपके उत्तर के लिए बहुत बहुत धन्यवाद। – amirhossein

0

इस प्रयास करें ..

private void textBox1_Enter(object sender, EventArgs e) 
{ 
    SetKeyboardLayout("FA"); 
} 


private void SetKeyboardLayout(InputLanguage layout) 
{ 
foreach (InputLanguage Lng in InputLanguage.InstalledInputLanguages) 
{ 
    If (Lng.Culture.EnglishName.ToUpper.StartsWith(layout)) 
    { 
     InputLanguage.CurrentInputLanguage = Lng; 
    } 

} 

} 
संबंधित मुद्दे