cannot, unless B is A's superclass, declare it public or internal

解决方案 »

  1.   

    using System;
    public class B
    {
    protected void Fun()
    {
    Console.WriteLine( "B" );
    }
    }public class C:B
    {
    public void NewFun()
    {
    base.Fun();
    }
    }
    public class A
    {
    public static void Main()
    {
    C c  = new C();
    c.NewFun();
    }
    }
      

  2.   

    那么我可以用Win32中的函数SendMessage去调用他吗?
    因为我想调用的是MenuItem中MeasureItem事件,MenuItem不像MFC,在.net frameworkd中是一个窗口了,如果MeasureItem是一个窗口消息,我想应该是可行的
      

  3.   

    三楼的那位兄弟,先谢谢了
    但我的问题是在一个form中调用MenuItem中的protected MeasureItem
      

  4.   

    我是在做一个MenuBar,和窗体式的PopupMenu
    但我已经做了个MenuItemEx类,是自绘的
    如果我要再在MenuBar和PopupMenu中加绘菜单函数的话会很麻烦,也很多余
    所以我想在MenuBar中调用MenuItemEx的MeasureItem事件和DrawItem事件,让MenuItem绘制在MenuBar上,而不是MenuBar::OnMeasureItem和MenuBar::OnDrawItem
      

  5.   

    [ 那么我可以用Win32中的函数SendMessage去调用他吗?
    因为我想调用的是MenuItem中MeasureItem事件,MenuItem不像MFC,在.net frameworkd中是一个窗口了,如果MeasureItem是一个窗口消息,我想应该是可行的 ]这里说错了,刚才心急看花眼了,看错了Forms namespace是基类
      

  6.   

    终于解决,搞了好久,其实简单得很,函数是protected的,但指向他的事件可以不是
    只要在类中加个public的delegate指向protected的函数就成了
    myDelegate += new MeasureItemEventHandler (........)