我有一个应用程序,其中包含以下项目:
在我的 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
是一个类。首先,您必须实例化它,即使用 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.
}