2008-09-07 13 views
19

के पहले बाल नियंत्रण पर ध्यान केंद्रित करें कहें कि मेरे पास TabControl के भीतर घोंसला है।विनफॉर्म सी # - टैबपेज

जब फॉर्म लोड होता है, तो मैं उस Textbox पर ध्यान केंद्रित करना चाहता हूं (डिफ़ॉल्ट रूप से फोकस TabControl पर सेट किया गया है)।

Load में केवल textbox1.focus() को कॉल करने का काम प्रतीत होता है।

private void frmMainLoad(object sender, EventArgs e) 
{ 
    foreach (TabPage tab in this.tabControl1.TabPages) 
    { 
     this.tabControl1.SelectedTab = tab; 
    } 
} 

मेरा प्रश्न है:

वहाँ यह करने के लिए एक और अधिक सुरुचिपूर्ण तरीका है

मैं ऐसा करके यह ध्यान केंद्रित करने के लिए निम्न में सक्षम है?

private void frmMainLoad(object sender, EventArgs e) 
{ 
    ActiveControl = textBox1; 
} 

बेहतर सवाल तथापि होगा क्यों ... मैं पूरी तरह से यकीन है कि क्या है कि एक का जवाब है नहीं कर रहा हूँ:

उत्तर

45

निम्नलिखित समाधान है।

संपादित करें: मुझे संदेह है कि यह इस तथ्य के साथ कुछ करना है कि दोनों रूप, और टैबकंट्रोल कंटेनर हैं, लेकिन मुझे यकीन नहीं है।

14

इसे Form_Shown() ईवेंट में डालने का प्रयास करें। क्योंकि यह एक कंटेनर में है, Form_Load में डालने या यहां तक ​​कि फॉर्म() कन्स्ट्रक्टर काम नहीं करेगा।

+2

यह लोड में काम नहीं करता क्योंकि लोड और बाद में नियंत्रण कर रहे हैं टैब क्रम और ध्यान केंद्रित नियंत्रण है के अनुसार फिर से ध्यान केंद्रित "ओवरराइट"। जब आप दिखाए गए नियंत्रण पर ध्यान केंद्रित करते हैं, तो ऐसा कुछ भी नहीं है जो किसी अन्य नियंत्रण पर ध्यान केंद्रित करके आपके कॉल को "ओवरराइट" करेगा। – Marek

1

आपको इस कोड पर अपने नियंत्रण के लिए नियंत्रण जोड़ने (चयन) करने की आवश्यकता है। मैंने त्रुटियों के दौरान सत्यापन के दौरान नियंत्रण पर ध्यान केंद्रित करने के लिए इसका उपयोग किया है।

private void ShowControlTab(Control ControlToShow) 
    { 
     if (!TabSelected) 
     { 
      if (ControlToShow.Parent != null) 
      { 
       if (ControlToShow.Parent.GetType() == typeof(TabPage)) 
       { 
        TabPage Tab = (TabPage)ControlToShow.Parent; 
        if (WOTabs.TabPages.Contains(Tab)) 
        { 
         WOTabs.SelectedTab = Tab; 
         TabSelected = true; 
         return; 
        } 
       } 

       ShowControlTab(ControlToShow.Parent); 
      } 
     } 
    } 
4

कोशिश textbox1.Select() बजाय textbox1.Focus() उपयोग करने के लिए। इससे मुझे कुछ बार मदद मिली।

1

मेरे पास उपयोगकर्ता के नियंत्रण में किसी अन्य उपयोगकर्ता नियंत्रण था। टेक्स्टबॉक्स 1। चयन करें() मेरे लिए काम किया लेकिन टेक्स्टबॉक्स 1। फोकस() काम नहीं किया।

आप टैब्स्टॉप को झूठी, टेक्स्टबॉक्स 1 पर सेट करने का प्रयास भी कर सकते हैं। फोकस(), टैबस्टॉप सत्य।

0
private void ChildForm1_Load(object sender, EventArgs e) 
     { 
      ActiveControl = txt_fname; 

     } 

मैं इस कोड यह जीत टैब नियंत्रण या पर ठीक काम करता है का उपयोग dotnetbar supertab contrl

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