现一tabpage里有一datagridview
想给tabcontrol自定义一个事件,达到每次tabpage切换都刷新tabpage的内容,从而刷新dagridview数据。
我在.CS里:
public delegate void pageChangeedEventHandler();
public event pageChangeedEventHandler pageChangeed;然后想在design.cs里面的tabControl里添加自己的事件:
this.tabControl.pageChangeed +=......
可是找不到自己定义的事件,即红色部分系统是找不到的,是什么原因,该如何修改。
望指教!!!

解决方案 »

  1.   

    你得写一个 
    private void YourChange(xxxx)
    {
    }
    然后
    this.tabControl.pageChangeed +=YourChange我不明白,tabcontrol有自己的切换页签的事件,你干嘛还得写一个
      

  2.   

    我不知道有自带的没有找到啊
    可是单独看这个问题,我是有些一个事件的,还是不行啊
            public delegate void tabPageChangedEventHandler();
            public event tabPageChangedEventHandler tC_AddDevice_ChangePage;        private void tC_AddDevice_OnChangePage(object sender, EventArgs e)
            {
                if (tC_AddDevice_ChangePage != null)
                {
                    tC_AddDevice_ChangePage();
                }
            }在design.cs里面写到:
            this.tC_AddDevice.tC_AddDevice_ChangePage
    红色部分系统找不到
      

  3.   

    其实你根据没得必须写这个委托的,就在tabControl的页面切换事件去写刷新内容就可以了
      

  4.   

    已解决,找到事件了
    SelectedIndexChanged
      

  5.   

    自定义Event/Delegate要在Publisher类里面(另外一个class),然后在你的代码里,比方说code behind建立Publisher的对象和Eventhandler(tC_AddDevice_OnChangePage),把你的Eventhandler添加到Publisher的对象的Event。包含你的代码的类叫做Subscriber。我觉得你应该复习一下Delegate和Event的基本概念。
      

  6.   

    对,这就是我这个帖子的初衷
    你能给个连接关于你这段话的详细解释,或者给我详细解释一下
    非常感谢啊,我做C#也就20多天,之前有系统看过delegate/event,以为懂了,谁知道基础没看好 
      

  7.   

    我习惯系统的看书,当然肯定会有一些短文章,但我没有留意。我觉得你既然要学C#,最后是看书。推荐一本简单易懂的C#,希望对你会有帮助。书名是:Illustrated C# 2010。然后,如果可以参考:C# in Depth
    SECOND EDITION。
      

  8.   

    Delegate和Event不是可以简单就能解释清楚的,掌握了Delegate和Event也表示你的C#具有一定的能力。为你加油!