2012-09-18 12 views
5

मेरे पास एक विंडोज फोन पेज पर एक टेक्स्टबॉक्स है और जैसे ही पेज लोड हो जाता है, मैं कीबोर्ड दिखाना चाहता हूं।मैं टेक्स्टबॉक्स के लिए प्रोग्रामेटिक रूप से कीबोर्ड कैसे दिखा सकता हूं?

क्या इस पृष्ठ पर नेविगेट करते समय इस टेक्स्टबॉक्स को पहले से केंद्रित करने का कोई तरीका है?

मैंने Guide.BeginShowKeyboardInput() का उपयोग करने पर विचार किया लेकिन मुझे नहीं लगता कि यह चांदी की रोशनी में एक अच्छा समाधान है।

+1

पेज को आपके टेक्स्ट-बॉक्स में लोड होने के बाद फोकस देना स्वचालित रूप से कीबोर्ड दिखाएगा? – Alexandre

उत्तर

8

हाँ, मैं मैन्युअल रूप से कीबोर्ड नहीं दिखाऊंगा। यह उन लोगों के लिए परेशान हो सकता है जिनमें भौतिक कीबोर्ड वाले डिवाइस हैं। पृष्ठ के लोड लोड ईवेंट में आप केवल उस टेक्स्टबॉक्स पर फ़ोकस विधि को कॉल कर सकते हैं जिसे आप चुनना चाहते हैं। कुंजीपटल स्वचालित रूप से आवश्यक के रूप में दिखाना चाहिए।

private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e) 
{ 
      txtLongitude.Focus(); 
} 
6

पृष्ठ के लिए OnNavigatedTo विधि ओवरराइड करें।

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    base.OnNavigatedTo(e); 

    // Set focus to the TextBox, this will pop up the 
    // virtual keyboard 
    myTextBox.Focus(); 
} 
0

आप एक Dispatcher के माध्यम से textBox.Focus() कह सकते हैं अगर आप OnNavigatedTo घटना पर इसका इस्तेमाल:

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    base.OnNavigatedTo(e); 

    if (e.NavigationMode != NavigationMode.Back) 
    { 
     Dispatcher.InvokeAsync(() => ShowKeyboard()); 
    } 
} 

private void ShowKeyboard() 
{ 
    textBox.Focus(); 
} 

if बयान यहाँ यकीन है कि कुंजीपटल केवल दिखाया गया है पृष्ठ से नेविगेट नहीं है जब बनाता है पिछला बटन।

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

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