C#表单需要调用父表单中定义的方法

C#表单需要调用父表单中定义的方法,c#,.net,oop,C#,.net,Oop,我有一个表单(EmployeeForm),它继承自部分类表单(MainForm)。在MainForm中,我有一个方法(SaveSomething)要调用 我该怎么做 using SomeLib; namespace FooEmployee { public partial class EmployeeForm: MainForm { private void dgv_DoubleClick(object sender, EventArgs e)

我有一个表单(
EmployeeForm
),它继承自部分类表单(
MainForm
)。在
MainForm
中,我有一个方法(
SaveSomething
)要调用

我该怎么做

using SomeLib;

namespace FooEmployee
{
    public partial class EmployeeForm: MainForm
    {
        private void dgv_DoubleClick(object sender, EventArgs e)
        {
             SaveSomething();
        }
    }    
}

namespace SomeLib
{
    public partial class MainForm: Form
    {
        private bool SaveSomething()
        {
        }
    }
}

在方法上使用
protected
作为访问修饰符,而不是
private

private
仅表示包含该方法的类<另一方面,code>protected表示当前类及其继承的所有类

您的代码如下所示:

public partial class MainForm: Form
{
    protected bool SaveSomething()
    {
        // ...
    }
}

这被称为,链接到一篇MSDN文章,该文章介绍了C#(、、
受保护的内部
)中所有可用的访问修饰符。

这对您有帮助吗@令人敬畏的程序员:虽然我愿意打赌有一个重复,但它看起来不符合这个问题,因为没有提到一个表单从另一个表单继承。在我看来,这个问题的质量也很差。鲁迪,我理解受保护的访问修饰符,并且我已经实现了它,但是我在引用“SaveSomething()”方法时遇到了一个错误。错误:“SomeLib.MainForm”不包含“SaveSomething”的定义@JimKiely我刚刚测试了与上面完全相同的代码,修改了
protected
,效果很好?“MainForm.SaveSomething();”-这就是我在双击事件方法中调用该方法的方式。有什么想法吗?是的,别那么做。使用
SaveSomething(),与您的代码完全相同。您尝试在类上使用名为
SaveSomething
的静态方法,而不是类的实例
SaveSomething
this
中可用,因此您根本不需要对其进行量化。