2013-02-21 85 views
0

我想这一点:公共自定义事件在用户控件

public partial class ucTest : UserControl 
{ 
... 
SomeEvent { MessageBox.Show("Inner Call") } 
} 


public partial class frmTest: Form 
{ 
... 
SomeEvent += OuterEventInstance; 
... 
void OuterEventInstance(object sender, EventArgs e) 
{ MessageBox.Show("Inner Call") } 
... 
} 

我如何可以在包含该用户控件的实例的形式是可用的(和可扩展)用户控件定义的公共事件?

+0

你是什么意思的 “扩张”? – 2013-02-21 09:06:48

+0

我的意思是这个'SomeEvent + = OuterEventInstance;'这样我就可以在用户控件中的按钮被点击时运行一些代码。 – 2013-02-21 09:11:19

+0

你需要解释更多关于你的问题。我认为你的答案是[我对你的其他问题的回答](http://stackoverflow.com/a/14956801/1174942)。您的用户控件的“MyClikc”事件可以像其他事件一样以其容器形式访问。 – 2013-02-21 09:14:10

回答

2

事情是这样的:

public partial class ucTest : UserControl 
{ 
    public event EventHandler SomeEvent; 

    private void OnSomeEvent() 
    { 
     EventHandler handler = SomeEvent; 
     if(handler != null) 
      handler(this, EventArgs.Empty); 
    } 

} 


public partial class frmTest: Form 
{ 
    public frmTest() 
    { 
     ucTest uc = new ucTest(); 
     uc.SomeEvent += OuterEventInstance; 
    } 

    //... 

    void OuterEventInstance(object sender, EventArgs e) 
    { 
     MessageBox.Show("Inner Call") 
     //... 
    } 
} 
+0

我不知道为什么这不起作用。 – 2013-02-21 09:13:04

+0

@MahdiTahsildari你是什么意思的“不起作用”?在StackOverflow“不起作用”不起作用! :-) – 2013-02-21 09:19:15

+0

@MahdiTahsildari你有编译器错误吗?或者你没有看到用户控件事件中定义的事件?或者你会得到一个例外?请澄清。 – 2013-02-21 09:20:26

相关问题