从不同项目中的另一个窗体打开一个窗体

Open one form from another form in a different project

我有一个应用程序,其中包含以下项目:

在我的 APP.ABC.Main 项目中,我有一个主窗体需要在 APP.ABC.Reporting 中打开一个报表。我已经在 APP.ABC.Main 项目中设置了对 APP.ABC.Reporting 的引用。但是我不知道如何从主项目打开报告表单。

我已经设置好了:

private void tileSQLAcct_Click(object sender, EventArgs e)
{
    //Open up ReportTest.cs form in APP.ABC.Reporting.

}

无论我尝试什么,Intellisense 总是将它变成红色。我对此有点陌生,有人可以帮我吗?

确保您要打开的表单声明为 public。否则从它自己的程序集外部是不可见的。

现在您应该能够从另一个项目或程序集中打开它(如果表单驻留在命名空间 APP.ABC.Reporting 中):

var frm = new APP.ABC.Reporting.ReportTest();
frm.Show(); // or .ShowDialog();

或者在代码文件顶部使用 using 语句

using APP.ABC.Reporting;

你可以用

打开它
var frm = new ReportTest();
frm.Show(); // or .ShowDialog();

请注意 Form 是 class。首先你必须实例化它,即用 new ReportTest() 从它创建一个对象。然后您可以调用特定于表单的 ShowShowDialog 例程。它们之间的区别在于,在调用 Show 之后调用例程继续,而使用 ShowDialog 调用例程会等到表单关闭后再继续。

ShowDialog 也 returns 您可以评估的结果:

if (frm.ShowDialog() == DialogResult.OK) 
{
    var result = frm.MyResult; // Where `MyResult` is supposed to be a public member.
}