我需要重写Tabcontrol GetTabRect。

  protected override Rectangle GetTabRect(int index)
    {...}


我收到此错误


  错误1'TabControl.GetTabRect(int)':
  在以下情况下无法更改访问修饰符
  覆盖“公共”继承成员
  'System.Windows.Forms.TabControl.GetTabRect(int)'
  
  Error2'TabControl.GetTabRect(int)':
  无法覆盖继承的成员
  'System.Windows.Forms.TabControl.GetTabRect(int)'
  因为它没有标记为虚拟,
  抽象或覆盖


我怎样才能做到这一点?

编辑

如果我使用public:

TabControl.GetTabRect(int)': cannot override inherited member 'System.Windows.Forms.TabControl.GetTabRect(int)' because it is not marked virtual, abstract, or override

最佳答案

TabControl.GetTabRect()方法是公共的,它不是虚拟的,因此您可能需要针对要解决的问题找到其他解决方案。即使使用new关键字覆盖此方法,基类也不会调用您的实现,因为它不是虚函数。

您可以尝试处理DrawItem事件并自己呈现选项卡-可能需要做更多的工作,但是它使您可以控制呈现选项卡的方式,然后可以使用所需的任何边界矩形。

您要做什么,需要重写的GetTabRect()方法?

关于c# - 帮助覆盖C#.NET,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5492686/

10-15 08:13