2011-09-18 8 views
6

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

public Form1() 
{ 
    InitializeComponent(); 
    Load += new EventHandler(Form1_Load); 
} 

void Form1_Load(object sender, EventArgs e) 
{ 
    System.Threading.Thread.Sleep(3000); 
    Text = "Done"; 
} 

फ़ॉर्म दिखाए जाने के बाद मैं इसे कैसे सो सकता हूं?

धन्यवाद।

+3

आप क्या हासिल करने की कोशिश कर रहे हैं? – BrokenGlass

उत्तर

21

विंडोज़ फॉर्म के लिए एक दिखाया गया कार्यक्रम है। देखें: http://msdn.microsoft.com/en-us/library/system.windows.forms.form.shown.aspx

या यदि आप आलसी हैं, ये रहा:

public Form1() 
{ 
    InitializeComponent(); 
    Shown += Form1_Shown; 
} 

private void Form1_Shown(object sender, EventArgs e) 
{ 
    System.Threading.Thread.Sleep(3000); 
    Text = "Done"; 
} 

का आनंद लें।

0

आप Form1_Load विधि में Timer प्रारंभ कर सकते हैं और संदेश को प्रदर्शित करने वाली विधि में अपनी विलम्बित ईवेंट को लिंक कर सकते हैं।

3

मैं सुझाव दूंगा कि को एक फॉर्म को अवरुद्ध न करें, कुछ प्रक्रिया करें और इसके शीर्षक "पूर्ण" में दिखाए जाने के बाद, मुझे लगता है कि आप क्या करना चाहते हैं, मुझे लगता है। यह उपयोगकर्ता को अवरुद्ध यूआई महसूस देता है, जो अच्छा नहीं है।

कुछ अस्थायी "प्रतीक्षा करें ..." फ़ॉर्म और आपके द्वारा किए जाने वाले ऑपरेशन/गणना के पूरा होने पर निश्चित रूप से बेहतर है, अपना मुख्य रूप दिखाएं।

अधिक यूएक्स केंद्रित डिजाइन।

+1

@downvoter: जुनून के लिए व्याख्या या downvoting की देखभाल? – Tigran

0

थ्रेड। सो (3000); लोड इवेंट हैंडलर में 3 सेकंड के लिए फॉर्म खोलने में देरी होती है। यह आपकी अपेक्षा के अनुसार काम नहीं करता है। एक टाइमर सबसे अच्छा समाधान है।

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