C# 循环引用…只是为了显示不同项目的形式

C# 循环引用…只是为了显示不同项目的形式,c#,C#,我是C#的新手,在整合两个不同的项目时遇到一些困难。 情况是: 项目A和项目B正在处理同一个项目。项目A有多种形式。我添加了项目B作为项目a的参考,通过实例化表单在项目B中显示表单。现在,一旦实例化的表单出现,并且用户单击一个按钮…我想显示项目a中的表单。但是,由于循环引用…我无法实现它 我读过关于在这种情况下使用接口的书。但是,我不知道如何使用接口将表单作为对象传递 请帮助..让我们调用表格1(项目A)、2(项目B)和3(也是项目A) 当您从Form1打开Form2时,请传递一个匿名方法/la

我是C#的新手,在整合两个不同的项目时遇到一些困难。 情况是:

项目A和项目B正在处理同一个项目。项目A有多种形式。我添加了项目B作为项目a的参考,通过实例化表单在项目B中显示表单。现在,一旦实例化的表单出现,并且用户单击一个按钮…我想显示项目a中的表单。但是,由于循环引用…我无法实现它

我读过关于在这种情况下使用接口的书。但是,我不知道如何使用接口将表单作为对象传递

请帮助..

让我们调用表格1(项目A)、2(项目B)和3(也是项目A)

当您从Form1打开Form2时,请传递一个匿名方法/lambda,使Form2能够打开Form3

表格2:

public Action OpenForm3 { get; set; }
在Form1中,在实例化后但在显示Form2之前:

myForm2.OpenForm3 = () => { var myForm3 = new Form3(); myForm3.ShowDialog(); };
表格3:

this.OpenForm3.Invoke();

考虑一个状态管理器对象到您的项目。问题在于,项目B(表格B)中的视图直接将用户指向项目a(表格a)中的视图,反之亦然,因此每个项目都依赖于其他项目。 您可以创建一个基础设施项目 它处理状态,因此对于客户端的每个状态,您可以通过定义规则(通过xml或类似的方式)来显示特定的视图。 因此,当用户单击按钮时,您告诉状态管理器对象用户单击了表单B中的按钮,状态管理器在其规则中看到,从其当前状态和当前操作,它应该转到另一个状态,而另一个状态的视图是表单a