2010-12-27 13 views
6

में डिज़ाइन मोड का उपयोग किये बिना किसी ईवेंट के लिए सही पैरामीटर पाएं क्या यह जानने का कोई तरीका है कि विजुअल स्टूडियो 2010 में किसी ईवेंट द्वारा पैरामीटर की आवश्यकता है?विजुअल स्टूडियो 2010

चलो कहते हैं कि मैं एक DropDownList नियंत्रण है और मैं "OnSelectedIndexChanged" के लिए एक विधि के लिए बाध्य करना चाहते हैं, मैं इस

ASPX फ़ाइल में की तरह कुछ करना होगा:

<asp:DropDownList ID="lstMyList" runat="server" OnSelectedIndexChanged="lstMyList_SelectedIndexChanged"></asp:DropDownList> 

codebehind में:

protected void lstMyList_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    ... 
} 

क्या यह जानने का कोई तरीका है कि विधि को किस पैरामीटर की आवश्यकता है? (इस मामले में, प्रेषक के लिए एक ऑब्जेक्ट और ईवेंट के लिए EventArgs पैरामीटर।)

मुझे पता है कि आप आसानी से डिज़ाइन मोड में सही ईवेंट को डबल-क्लिक करके विधि बना सकते हैं, लेकिन यह आपके कोड के साथ गड़बड़ करता है तो मैं इसका इस्तेमाल नहीं करना पसंद करता हूं।

धन्यवाद!

उत्तर

6

आप उपयुक्त घटना पर "परिभाषा पर जा रहे हैं" (एफ 12) द्वारा पैरामीटर पा सकते हैं, यह पता लगाने के लिए कि कौन सा प्रतिनिधि प्रकार इसका उपयोग करता है, फिर उस पर परिभाषा जा रहा है।

[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public delegate void EventHandler(
    Object sender, 
    EventArgs e 
) 

तुम भी वेब की खोज या F1 दबाकर और मदद में खोज करते हुए यह जानकारी प्राप्त कर सकते हैं: इस मामले में SelectedIndexChanged घटना टाइप EventHandler जो इस प्रकार परिभाषित किया गया है है।


मैं आप आसानी से डिजाइन मोड में सही घटना डबल-क्लिक करके विधि बना सकते हैं पता है, लेकिन यह इतना मैं इसे का उपयोग नहीं करना अपने कोड के साथ एक मेस करता है।

मुझे लगता है कि आपको डिजाइनर का उपयोग करने के अपने डर को दूर करने का प्रयास करना चाहिए। विजुअल स्टूडियो में कोड जनरेटिंग सुविधाओं का उपयोग न करके आप खोए गए उत्पादकता में अधिक समय बर्बाद कर रहे हैं, संभवत: आपके कोड को गड़बड़ करने वाले डिजाइनर के खिलाफ स्वयं की रक्षा करके सहेजे गए संभावित समय की तुलना में।

+0

कोडबींड के लिए, शायद, लेकिन मुझे अभी भी HTML/ASP.NET मार्कअप के साथ समस्या हो रही है। – Jason

+0

हां, यह सुविधा वीएस मार्कअप संपादक से गुम है। –

+0

क्या मुझे "परिभाषा पर जा रहा है" विकल्प देखना चाहिए जब मैं मार्कअप संपादक में ईवेंट पर राइट-क्लिक करता हूं? एफ 12 या तो काम नहीं करता है। – Jason

2

कीस्ट्रोक और उत्पादकता के मामले में शायद ही किफायती है लेकिन एक संभावना है, अगर आपको कोड में 'गो टू डेफिनिशन' में कोड मिल रहा है, और एक पल के लिए कल्पना कर रहा है कि आपको कोड एडिटर फीचर्स का उपयोग करने में कोई फर्क नहीं पड़ता वीएस भी टैब टैब को हिट करना है, फिर टैब कुंजी को दो बार मारने से पहले + = जोड़ें। यह उचित प्रतिनिधिमंडल और विधि परिभाषा उत्पन्न करेगा, जिसके परिणामस्वरूप आप विधि हस्ताक्षर देख पाएंगे।

उदाहरण के लिए, निम्न में टाइपिंग उचित रूप से टैब (टाइप करने के बाद दो बार '+ ='):

MyType.MyEvent += new System.EventHandler(MyType_MyEvent); 

निम्नलिखित की तरह एक विधि उत्पन्न करता है: अब

void MyType_MyEvent(object sender, EventArgs e) 
{ 
    throw new NotImplementedException(); 
} 

, उत्पादकता में कमी कर सकता है तब होता है जब आपको वास्तव में कोड के दोनों टुकड़ों की आवश्यकता नहीं होती है।

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