使用VS我创建了主窗体(在软件运行时第一次打开)及其类X,在这个类XI中有一个方法Y,我必须从另一个窗体访问它类,但不能使它成为静态的,如果我尝试XY()它显然说我需要引用该类的一个实例。有没有办法获得这个主表单的实例的引用,而不是再次实例化它,我相信当程序开始运行或者类似的时候,它被实例化了?C# - 从另一个类访问主窗体方法
-2
A
回答
0
让FormX
成为主要类有一个名为MethodY
,你想从AnotherClass
访问。对于您可以使用这样的:
定义为class FormX
,主要形式
class FormX
{
public delegate void refreshDelegate();
public event refreshDelegate refreshEvent;
AnotherClass AnotherClassInstance = new AnotherClass();
public FormX()
{
refreshEvent += new refreshDelegate(MethodY);
AnotherClassInstance.AccessParentMethod = refreshEvent;
}
public void MethodY()
{
// do something
}
}
为儿童类AnotherClass
public class AnotherClass
{
public Delegate AccessParentMethod;
public void ClassMethod()
{
// Access form method
AccessParentMethod.DynamicInvoke();
}
}
定义使用上面的代码,你洁具定义事件refreshEvent
类型为refreshDelegate
,并通过其实例分配给AnotherClass的名为AccessParentMethod
的委托人。所以通过调用AccessParentMethod.DynamicInvoke()
你实际上调用了主类的MethodY()
。如果您想将子对象的一些参数传递给主类,请在委托定义中进行以下更改;
public delegate void refreshDelegate(object SomeValue);
public event refreshDelegate refreshEvent;
// Changes in MethodY
public void MethodY(object SomeValue)
{
// do something
}
那么你可以使用下面的代码调用MethodY
:
AccessParentMethod.DynamicInvoke("This is the argument");
+0
欣赏Downvote;不要成为隐藏的敌人,试图透露原因。这可能会帮助我改善帖子 –
+0
你的帖子看起来不错。我猜你是因为回答低质量问题而被低估的。 – DeanOC
0
相关问题
- 1. 使用从主窗体中的另一个类的方法
- 2. 从另一个类访问方法
- 3. 从另一个类访问方法Android
- 4. Javascript:从同一类的另一个方法访问类方法
- 5. 从子类访问主窗体
- 6. 从主类中实例化的另一个类访问主类实例方法
- 7. 从子窗体访问主窗体
- 8. 从另一个类的访问窗口
- 9. 从父窗体访问打开窗体的方法c#
- 10. 在C#中从另一个类调用主窗体的功能
- 11. 另一个类中的链表可以从一个方法访问,但不能从另一个方法访问
- 12. 在C#中访问窗体方法和变量从一个类,反之亦然#
- 13. 从C#中的另一个类访问方法
- 14. C#从另一个文件访问父类方法
- 15. 如何从C++的另一个类的方法访问类的方法
- 16. 如何使用C#调用另一个窗体内的主窗体方法?
- 17. 如何从另一个窗体访问对象c#
- 18. 如何从c中的另一个窗体访问按钮#
- 19. 从另一个窗体访问标签和组合框C#
- 20. 我无法从另一个类访问包装类'方法
- 21. 从另一个类访问窗体控件
- 22. 从另一个类的窗体访问resx资源
- 23. 访问从另一个类C#
- 24. 从另一个Objective-C类访问int
- 25. 访问另一个类的setter方法
- 26. 访问另一个类的方法
- 27. 如何从另一个类访问超类方法?
- 28. 如何从另一个类的方法访问类的变量?
- 29. 从另一个类文件中访问一个方法?
- 30. 如何从另一个类访问一个方法?
你创建的'的'级X' –
内的另一种形式class'将委托第二种形式的一个实例,并传递对主窗体方法的引用。然后第二种形式可以调用它。 – DeanOC
nope,im not @ un-lucky –