从不同项目中的另一个窗体打开一个窗体
Open one form from another form in a different project
我有一个应用程序,其中包含以下项目:
- APP.ABC.Main
- APP.ABC.Reporting
- APP.ABC.Interface
在我的 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()
从它创建一个对象。然后您可以调用特定于表单的 Show
或 ShowDialog
例程。它们之间的区别在于,在调用 Show
之后调用例程继续,而使用 ShowDialog
调用例程会等到表单关闭后再继续。
ShowDialog
也 returns 您可以评估的结果:
if (frm.ShowDialog() == DialogResult.OK)
{
var result = frm.MyResult; // Where `MyResult` is supposed to be a public member.
}
我有一个应用程序,其中包含以下项目:
- APP.ABC.Main
- APP.ABC.Reporting
- APP.ABC.Interface
在我的 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()
从它创建一个对象。然后您可以调用特定于表单的 Show
或 ShowDialog
例程。它们之间的区别在于,在调用 Show
之后调用例程继续,而使用 ShowDialog
调用例程会等到表单关闭后再继续。
ShowDialog
也 returns 您可以评估的结果:
if (frm.ShowDialog() == DialogResult.OK)
{
var result = frm.MyResult; // Where `MyResult` is supposed to be a public member.
}