我有一个应用程序,其中包含以下项目:
在我的APP.ABC.Main项目中,我有一个主窗体,需要在APP.ABC.Reporting中打开一个报表。我已经在APP.ABC.Main项目中设置了对APP.ABC.Reporting的引用。但是我不知道如何从Main项目中打开“报表”表单。
我已经设置好了:
private void tileSQLAcct_Click(object sender, EventArgs e)
{
//Open up ReportTest.cs form in APP.ABC.Reporting.
}
无论我尝试什么,Intellisense始终将其变为红色。我有点陌生,有人可以帮我吗?
答案 0 :(得分:3)
确保将要打开的表单声明为public
。否则,它将无法从其自己的装配体外部看到。
现在,您应该可以从另一个项目或程序集中使用它打开(如果表单位于命名空间APP.ABC.Reporting
中):
var frm = new APP.ABC.Reporting.ReportTest();
frm.Show(); // or .ShowDialog();
或者在代码文件的顶部带有使用声明
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.
}