我创建了两个自定义控件。在功能的基础上,将选择其中任何一个并在C#应用程序中使用。我已经加载了所需的控件,但我如何使用那里的函数,例如我的控件LoadXML()有一个公共函数。两个控件都包含此功能。 一次只能加载一个控件。
答案 0 :(得分:0)
创建一个控件实例,然后将其添加到表单中,之后可以调用其公开的方法。
TestControl myTestControl = new TestControl();
this.Controls.Add(myTestControl);
myTestControl.LoadXML();
如果您通过dll加载控件,请尝试调用方法:
// Use the file name to load the assembly into the current
// application domain.
Assembly a = Assembly.Load("example");
// Get the type to use.
Type myType = a.GetType("Example");
// Get the method to call.
MethodInfo myMethod = myType.GetMethod("MethodA");
// Create an instance.
object obj = Activator.CreateInstance(myType);
// Execute the method.
myMethod.Invoke(obj, null);
答案 1 :(得分:0)
如果我已正确理解您的问题,您应该创建一个界面并向其添加函数LoadXML()
。在自定义控件上实现界面。现在,您可以创建界面的对象并使用所需的控件对其进行初始化。
interface MyInterface
{
void LoadXML();
}
在您的用户控件中,实施MyInterface
public class UserControl1 : UserControl, MyInterface
{
public void LoadXML()
{
... //do what you want
}
}
UserControl2
相同
现在在接口对象中加载所需的用户控件并调用LoadXML()
,
class Class
{
MyInterface control;
public Class()
{
if (condition == true)
control = new UserControl1();
else
control = new UserControl2();
control.LoadXML();
}
}
希望它会有所帮助。