2015-10-16 14 views
5

मेरे पास एक Winforms एप्लिकेशन है। मेरे पास इस एप्लिकेशन (मुख्य रूप, और कई विशेष रूपों) में कई रूप हैं, और केवल एक ही फॉर्म पर, मेरे किसी भी बटन के लिए ईवेंट फ़ायरिंग नहीं कर रहे हैं।विनफॉर्म क्लिक इवेंट नहीं फायरिंग

ऐसा नहीं है कि हैंडलर में कोड टूटा हुआ है। यह इस तथ्य से निर्धारित किया जा सकता है कि बटन पर क्लिक करते समय हैंडलर की पहली पंक्ति पर ब्रेकपॉइंट कभी नहीं पहुंचता है।

अन्य कार्यक्रम काम कर रहे हैं (मैं इस फॉर्म पर चेक किए गए चेंज किए गए कार्यक्रमों का उपयोग कर रहा हूं और वे व्यवहार कर रहे हैं)।

मेरी टीम के सदस्यों ने समीक्षा की है, और समस्या को भी नहीं देख सकते हैं।

डिजाइनर जेनरेट किए गए कोड

partial class MyForm 
{ 
    private System.Windows.Forms.Button addButton; 

    private void InitalizeComponent() 
    { 
     this.addButton = new System.Windows.Forms.Button(); 
     this.addButton.Name = "addButton"; 
     // Drawing statements here 
     this.addButton.Click += new System.EventHandler(this.addButton_Click); 

     this.Controls.Add(this.addButton); 
    } 
} 

मेरे कोड

public partial class MyForm : Form 
{ 
    public MyForm() 
    { 
     InitializeComponent(); 
    } 

    private void addButton_Click(object sender, EventArgs e) 
    { 
     MessageBox.Show("The debugger is not reaching a break point on this line"); 
    } 
} 

संपादित करें:: अतिरिक्त परीक्षण

से सूचना

यहाँ मेरी कोड का एक सरलीकृत दृश्य है

मेरे रूप में कई ड्रॉपडाउनलिस्ट हैं। मैंने पाया है कि क्लिक ईवेंट केवल आग लगने में विफल रहता है अगर मैं पहले ड्रॉप डाउन बॉक्स में चयन करता हूं।

यदि मैं कोई चयन नहीं करता, तो बटन के हैंडलर आग में ब्रेक पॉइंट। अन्यथा यह नहीं है। इन ड्रॉप डाउन सूचियों पर कोई कार्यक्रम पंजीकृत नहीं है।

+1

आपके फॉर्म में कोई अन्य कोड है जो 'InitializeComponent' के बाद ईवेंट और हैंडलर के बीच तारों को हटा रहा है? – Kapoor

+1

क्या आप ऐसा कुछ उदाहरण के बारे में सोच सकते हैं जो ऐसा कर सकता है? अब मुझे एक नजर आएगी, लेकिन मुझे नहीं पता कि उस तार को पूर्ववत करने के लिए क्या देखना है। –

+1

क्या आपका बटन सक्षम है? –

उत्तर

6

आप अपनी पोस्ट में उल्लेख किया है:

मुद्दा बटन घटनाओं के साथ नहीं है, लेकिन रूप ड्रॉप-डाउन बॉक्स से चयन करने के बाद अवरुद्ध होता जा रहा है।

, बाध्यकारी है जब आप एक डेटा बाध्य नियंत्रण में मान दर्ज डेटा का उपयोग कर, यह पहली प्रविष्टि मान्य करने के लिए और कोशिश करता है तो अगर प्रविष्टि मान्य था, डेटा बाइंडिंग इच्छा:

यहाँ कारण है डेटा स्रोत में मान डालें, लेकिन यदि सत्यापन त्रुटि होती है तो सत्यापन गलत होता है और आपका नियंत्रण अमान्य मोड पर जाता है।

जब फॉर्म का कोई बाल नियंत्रण मान्य नहीं होता है, तो डिफ़ॉल्ट रूप से आप अमान्य नियंत्रण से फ़ोकस नहीं बदल सकते हैं।

डिफ़ॉल्ट रूप से बटन पर क्लिक करें जो फोकस खोने वाले नियंत्रण की वैधता का कारण बनता है, इसलिए आप बटन पर क्लिक नहीं कर सकते हैं, क्योंकि आप अपने बटन को माउस पर प्रतिबिंबित करते हैं लेकिन वास्तव में क्लिक नहीं करते हैं।

आप ValidatingTextBox की घटना को संभालने और e.cancel = true सेट करके इस तरह के व्यवहार को अनुकरण कर सकते हैं। AutoValidate.EnableAllowFocusChange को

  • सेट CausesValidation अपने बटन की संपत्ति false अपने फार्म की संपत्ति को
  • सेट AutoValidate:

    तो आप इस विकल्प का उपयोग कर इस व्यवहार को ठीक कर सकते हैं:

    यहाँ ठीक है

+0

धन्यवाद, इसने मुझे त्रुटि उत्पन्न करने की पूरी समझ दी है। मैंने इसे ठीक करने में कामयाब रहा, समझने के बिना क्यों इसे तोड़ दिया गया था या अब यह क्यों तय किया गया था। –

+0

आपका स्वागत है :) –

0

यह

public MyForm() 
{ 
    InitializeComponent(); 
} 
+1

उस वर्ग में 'सार्वजनिक अनुसूची मीटिंग()' संकलित कैसे करता है? यह अजीब है। – shahkalpesh

+0

@ शाहकालपेश: मैं आपसे सहमत हूं –

+0

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

1

मैं आगे की जांच के बाद इस मुद्दे की खोज की है करने के लिए आप

बदलें

public ScheduleMeeting() 
{ 
    InitializeComponent(); 
} 

चाल करेंगे।

मुझे समस्या बटन घटनाओं के साथ नहीं है, लेकिन एक ड्रॉप डाउन बॉक्स से चयन करने के बाद फॉर्म अवरुद्ध हो रहा है।

मुझे अभी तक पता नहीं चला है कि ड्रॉप डाउन के बाद फॉर्म ब्लॉक क्यों चुना गया है (इसमें कोई घटना नहीं है, लेकिन डाटाबेसिंग है, इसलिए वहां कुछ संभावित कारण हैं)।

आपकी सभी मदद के लिए धन्यवाद!

+0

मैंने आपके उत्तर के आधार पर कारण बताया। आशा है कि आपको यह उपयोगी लगेगा :) –

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