में इवेंट हैंडलर मैं सी # के लिए नया हूं, अगर यह नोब सवाल है तो क्षमा करें। मैं सी # में घटनाओं को संभालने के लिए वाक्यविन्यास या पैटर्न के चारों ओर स्पष्टता प्राप्त करने की कोशिश कर रहा हूं।सी # - सिंटैक्स/पैटर्न
तो मेरे पास Form
ऑब्जेक्ट Form1
और Button button1
फ़ॉर्म में है। मैं Form1.cs में इस तरह की एक विधि के साथ एक क्लिक घटना संभाल:
private void button1_Click(object sender, EventArgs e)
{
Debug.WriteLine("click!");
}
जो ठीक काम करता है। अब एक और रूप में Form2
मेरे पास TreeView treeView1
है, और मैं BeforeExpand
ईवेंट को संभालना चाहता हूं। तो मैं मान लिया है यह होगा:
private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e)
{
Debug.WriteLine("Hello!");
}
जो वास्तव में काम नहीं करता है: जब मैं एक नोड का विस्तार इस विधि कहा जाता है कभी नहीं है। लेकिन कई SO जवाब इस को करने का तरीका है, उदाहरण के लिए यह one है।
वैसे भी मुझे एक वैकल्पिक दृष्टिकोण मिला जो मेरे लिए काम करता है। फॉर्म कन्स्ट्रक्टर में इवेंट हैंडलर को इस तरह से बांधें:
treeView1.BeforeExpand += new TreeViewCancelEventHandler(anyMethodNameYouLike);
तो इन दो दृष्टिकोणों के बीच क्या अंतर है? _event वाक्यविन्यास एक वृक्षदृश्य के लिए क्यों काम नहीं करता है? घटना प्रकारों के बीच कुछ अंतर है?
धन्यवाद
तो मुझे इस सीधे मिलता है: संस्करण है कि आप बस संचालक को परिभाषित कर रहे काम नहीं करता है में और फिर? आप उस संस्करण में बाध्यकारी नहीं हैं? – Tudor