2010-02-02 18 views
21

क्या उपयोगकर्ता नियंत्रण कस्टम ईवेंट देने का कोई तरीका है, और उपयोगकर्ता नियंत्रण के भीतर किसी ईवेंट पर ईवेंट का आह्वान करें। (मुझे यकीन है कि अगर आह्वान सही शब्द है नहीं कर रहा हूँ)विनफॉर्म उपयोगकर्ता नियंत्रण कस्टम घटनाओं

public partial class Sample: UserControl 
{ 
    public Sample() 
    { 
     InitializeComponent(); 
    } 


    private void TextBox_Validated(object sender, EventArgs e) 
    { 
     // invoke UserControl event here 
    } 
} 

और MainForm:

public partial class MainForm : Form 
{ 
    private Sample sampleUserControl = new Sample(); 

    public MainForm() 
    { 
     this.InitializeComponent(); 
     sampleUserControl.Click += new EventHandler(this.CustomEvent_Handler); 
    } 
    private void CustomEvent_Handler(object sender, EventArgs e) 
    { 
     // do stuff 
    } 
} 
+0

आप इस प्रश्न का उपयोगी http://stackoverflow.com/questions/2151049/net-custom-event-organization-assistance –

उत्तर

29

ई के अलावा उदाहरण के लिए स्टीव पोस्ट किया गया है, सिंटैक्स भी उपलब्ध है जो आसानी से ईवेंट को पास कर सकता है। यह एक संपत्ति बनाने के समान है:

class MyUserControl : UserControl 
{ 
    public event EventHandler TextBoxValidated 
    { 
     add { textBox1.Validated += value; } 
     remove { textBox1.Validated -= value; } 
    } 
} 
27

मेरा मानना ​​है कि क्या आप चाहते हैं कुछ इस तरह है:

public partial class Sample: UserControl 
{ 
    public event EventHandler TextboxValidated; 

    public Sample() 
    { 
     InitializeComponent(); 
    } 


    private void TextBox_Validated(object sender, EventArgs e) 
    { 
     // invoke UserControl event here 
     if (this.TextboxValidated != null) this.TextboxValidated(sender, e); 
    } 
} 

और फिर आपके फॉर्म पर:

public partial class MainForm : Form 
{ 
    private Sample sampleUserControl = new Sample(); 

    public MainForm() 
    { 
     this.InitializeComponent(); 
     sampleUserControl.TextboxValidated += new EventHandler(this.CustomEvent_Handler); 
    } 
    private void CustomEvent_Handler(object sender, EventArgs e) 
    { 
     // do stuff 
    } 
} 
+0

+1 सहायक को यह पहले उत्तर मिल सकती है उत्तर – Kevin

+0

बहुत बढ़िया। क्या चाल के बारे में कोई फर्क नहीं पड़ता था। :) – Almo

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