从不同项目中的另一个表单打开一个表单

问题描述 投票:0回答:1

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

  • APP.ABC.Main
  • APP.ABC.报告
  • APP.ABC.界面

在我的 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 总是将其变成红色。我对此有点陌生,接下来我可以尝试什么?

c# reportviewer
1个回答
3
投票

确保您要打开的表单声明为

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
是一个类。首先,您必须实例化它,即使用
new ReportTest()
从它创建一个对象。然后您可以调用特定于表单的
Show
ShowDialog
例程。它们之间的区别在于,调用
Show
后,调用例程会继续,而使用
ShowDialog
时,调用例程会等到表单关闭后再恢复。

ShowDialog
还返回一个您可以评估的结果:

if (frm.ShowDialog() == DialogResult.OK) 
{
    var result = frm.MyResult; // Where `MyResult` is supposed to be a public member.
}
© www.soinside.com 2019 - 2024. All rights reserved.