2012-06-05 10 views
6

मेरा ऐप WinForms .NET 4 (C#) है और एक बटन दबाए जाने के बाद स्वचालित रूप से बंद हो रहा है।अजीब: बटन प्रेस के बाद WinForms फॉर्म स्वचालित रूप से बंद हो जाता है

  • फ़ॉर्म में डिफ़ॉल्ट रूप से स्वीकार करें और रद्द करें बटन हैं लेकिन इन्हें छुआ नहीं है।
  • एक बटनटेस्टकनेक्शन_Click ईवेंट है जो क्लिक करते समय, इसका काम करता है लेकिन किसी भी रूप में फॉर्म बंद करता है।
  • मैं बटन क्लिक करने के लिए माउस का उपयोग कर रहा हूं, इसलिए यह कैस्केडिंग कीस्ट्रोक का मामला नहीं है।
  • मैं इस फ़ंक्शन में DialogResult सेट नहीं कर रहा हूं।

मैंने भी इसे भटकने की जांच करने की कोशिश की। बंद करो/यह। कॉल का पर्दाफाश करें लेकिन कोई नहीं मिला।

private void ButtonTestConnection_Click (object sender, System.EventArgs e) 
{ 
    this.Enabled = false; 
    this.Cursor = System.Windows.Forms.Cursors.WaitCursor; 

    this.ProgressBar.Minimum = 0; 
    this.ProgressBar.Maximum = 500; 
    this.ProgressBar.Value = 0; 

    this.ProgressBar.Visible = true; 
    this.ButtonTestConnection.Visible = false; 

    try 
    { 
     while (this.ProgressBar.Value < this.ProgressBar.Maximum) 
     { 
      // Some proxy code. 
      this.ProgressBar.Value++; 
     } 
    } 
    catch 
    { 
    } 

    this.ProgressBar.Visible = false; 
    this.ButtonTestConnection.Visible = true; 

    this.ProgressBar.Invalidate(); 
    System.Windows.Forms.Application.DoEvents(); 
    System.Threading.Thread.Sleep(10); 

    this.Cursor = System.Windows.Forms.Cursors.Default; 
    this.Enabled = true; 

    System.Windows.Forms.MessageBox.Show(result.ToString()); 
} 
+0

मैं एक महसूस कर रही है ना के लिए बटन की स्थापना के साथ कुछ हो सकता है सक्षम whch शायद फोकस बदल जाता है। अभी तक यकीन नहीं। –

+1

सब कुछ ईवेंट हैंडलर से बाहर निकालें और फिर पता लगाने के लिए जो लाइन समस्या का कारण बनता है एक समय में एक लाइन जोड़ना शुरू –

+1

प्रपत्र के OnFormClosing विधि ओवरराइड (बाइनरी खोज का उपयोग का अनुकूलन)। उस पर ब्रेकपॉइंट सेट करें और कॉल स्टैक को हिट करते समय देखें। इसे अपने प्रश्न में पोस्ट करें यदि आप इसका एहसास नहीं कर सकते हैं। –

उत्तर

14

जांच करें कि बटन पर संपत्ति DialogResultNone के बराबर:

यहाँ कोड है।
यदि नहीं, तो जब आप उस बटन को दबाते हैं तो फॉर्म बंद हो जाएगा और फॉर्म बटन की डायलॉग रीसेट संपत्ति की सेटिंग वापस कर देगा।

आमतौर पर, यह एक बहुत होता है जब आप कॉपी/एक मौजूदा फार्म के बटन पेस्ट लेकिन चिपकाया बटन पर स्थापित करने के मूल DialogResult दूर करने के लिए भूल जाते हैं

+0

यह साबित करने के लिए मैं ईवेंट से बटन को अलग कर दूंगा और इसे क्लिक करूंगा। मैं शर्त लगाता हूं कि वही परिणाम होंगे। –

+0

धन्यवाद। यह सब के बाद एक कॉपी पेस्ट मुद्दा था। मैं DialogResult से पहले डिजाइनर के माध्यम से सुलभ के बाद से लोगों को आम तौर पर कोड के माध्यम से यह सेट देखा कभी नहीं। –

+0

4 साल बाद ... धन्यवाद! – elmer007

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

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