आप ShowDialog() से पहले झूठ में ShowInTaskbar सेट करके इसे खोलते रहें;
private void Form1_Load(object sender, EventArgs e)
{
Form2 newForm = new Form2();
Button b = new Button();
newForm.Controls.Add(b);
b.Click += new EventHandler(click);
this.Show();
// add this line of code...
newForm.ShowInTaskbar = false;
newForm.ShowDialog();
}
private void click(object sender, EventArgs e)
{
((Form)((Control)sender).Parent).ShowInTaskbar = false;
}
या बस दूसरा फॉर्म मोडल न बनाएं। यह भी काम करता है।
private void Form1_Load(object sender, EventArgs e)
{
Form2 newForm = new Form2();
Button b = new Button();
newForm.Controls.Add(b);
b.Click += new EventHandler(click);
this.Show();
newForm.Show();
}
मैं विशिष्ट तंत्र यहाँ पता नहीं है, लेकिन स्पष्ट रूप से क्या हो रहा है कि झंडा (जो वास्तव में एक या अधिक WS_EX_xxx खिड़की शैलियों में परिवर्तन) को बदलने ShowDialog() की मोडल पंप बाहर निकलने के लिए पैदा कर रहा है। यह बदले में आपको (अंततः!) फॉर्म 1_लोड से बाहर निकलने का कारण बन रहा है और फिर आपका नयाफॉर्म गुंजाइश से बाहर हो गया है और नष्ट हो गया है।
तो आपकी समस्या ShowDialog() की एक संगतता है और तथ्य यह है कि आप शोडिअलॉग() के लिए बाहर निकलने के लिए तैयार नहीं हैं।
अब एक मॉडल पहली जगह में एक टास्कबार आइकन के साथ नहीं दिखाए जाने चाहिए, वहाँ वास्तव में केवल 1 टास्कबार और एक आवेदन के लिए आइकन होना चाहिए इसके बारे में सब मोडल रूपों, के बाद से जब एक मॉडल फार्म चल रहा है है, वैसे भी मुख्य रूप अक्षम है। जब मुख्य रूप कम हो जाता है, तो उसके सभी मोडल फॉर्म छिपाए जाएंगे, आदि
तो यदि आप वास्तव में यह दूसरा फॉर्म मोडल होना चाहते हैं, तो आपको उपयोगकर्ता को इसे देने की क्षमता नहीं देनी चाहिए टास्कबार आइकन। यदि ShowDialog() का उपयोग केवल टेस्ट कोड था, तो इसके बारे में चिंता न करें। जब मुख्य अनुप्रयोग पंप पर फॉर्म चलता है तो समस्या दूर हो जाएगी।
स्रोत
2010-03-06 01:20:44
नहीं, यह सिर्फ गलत है। मोडल फॉर्म और टास्कबार आइकन मिश्रण नहीं करते हैं। एक या दूसरे का प्रयोग करें, लेकिन दोनों नहीं। –
मैं आपसे सहमत हूं लेकिन मैं विनिर्देश नहीं बनाता, मेरी इच्छा है कि मैं कभी-कभी – Fredou
समस्या न केवल आप सम्मेलन का उल्लंघन कर रहे हैं, यह भी है कि आप अपरिभाषित या छोटी गाड़ी व्यवहार पर भरोसा कर रहे हैं। आप पाते हैं कि यह विंडोज के सभी संस्करणों पर काम नहीं करेगा, उदाहरण के लिए। – overslacked