c# - 调用方法并绘制

标签 c# winforms

我有 3 个类继承了另一个名为 ParentClass 的类,这 3 个类中的每一个都包含以下代码

public void DrawBackground(Graphics e, Rectangle rect)
{
    e.FillRectangle(Brushes.Red, rect);
}

在我的主窗体中,我有一个这样的变量 ParentClass PClass = new OneOfTheThreeClasses

如何从我的表单的绘制事件中调用那些使用该变量的类的 DrawBAckground 方法?

最佳答案

ParentClass 上创建抽象或虚方法。像这样:

public virtual void DrawBackground(Graphics e, Rectangle rect)
{
    // do nothing
}

然后在子类中,覆盖该方法:

public override void DrawBackground(Graphics e, Rectangle rect)
{
    e.FillRectangle(Brushes.Red, rect);
}

想法是 ParentClass 需要定义可以对其执行的操作或它的任何多态版本(例如子类型)。它不一定必须提供实现(并且定义可以是抽象的或虚拟的,具体取决于 ParentClass 本身的实现和使用方式),但确实需要以某种方式“了解”该方法为了让任何东西都能够在 ParentClass 的实例上调用它。

关于c# - 调用方法并绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37144272/

相关文章:

c# - 是否有一行代码可以获取该字符串的特定部分?

c# .NET - 标签页边距

c# - 在哪里可以找到 System.Runtime.Caching 以在 Windows 窗体应用程序中引用

c# - 简单的从 gridview 在 asp.net web 应用程序中选择一行

c# - 在登录 View 中找到控件

c# - 集合无重复且有序

c# - 如何通过点击关闭TAB页面?

c# - winform控件如何随着窗体展开等量展开

c# - UserControl 作为界面,但在设计器中可见

c# - 以编程方式从 Generic.xaml 中查找资源