如何在UserControl中调用此方法?

时间:2018-11-19 20:10:37

标签: c# forms

所以我有这个课:

public class myClass
{ 
    UserControl a;
    UserControl b;
    UserControl c;

    public myClass (UserControl a, UserControl b, UserControl c)
    {
        this.a = a;
        this.b = b;
        this.c = c;
    }
}

所有3个UserControl都包含一个称为test()的方法(或您想要的任何方法),尽管它们不是相同的方法。我希望能够从myClass的相应类之外调用这些方法。我该怎么做呢?当我简单地尝试a.test()时,我得到一个错误,指出test不是UserControl的一种方法。

UserControl看起来像这样:

public partial class a : UserControl
{ 
    public a()
    {
        InitializeComponent();
    }

    public void test()
    {
        //
    }
}

1 个答案:

答案 0 :(得分:-1)

您可以使用反射来做到这一点

using System.Reflection;

//Get the type of an object where the test method is
Type myType = a.GetType();

//Find the test method
MethodInfo testMethod = myType.GetMethod("test");

//Invoke the test method in the object
testMethod.Invoke(a, new object[] {});

https://docs.microsoft.com/en-us/dotnet/api/system.reflection.methodbase.invoke?view=netframework-4.7.2