c# - 从不同项目中的另一个表单打开一个表单
问题描述
我有一个应用程序,其中包含以下项目:
- 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 总是将其变为红色。我对此有点陌生,有人可以帮助我吗?
解决方案
确保您要打开的表单声明为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();
注意 aForm
是一个类。首先你必须实例化它,即用它创建一个对象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.
}
推荐阅读
- c++ - 找不到 CMAKE_CXX_COMPILER。在 EC2 实例中安装 LightGBM 时
- firebase - 如何在flutter中使用flutter_typeahead和firestore?
- excel - 从范围和排除列表中创建具有范围的单元格
- r - 试图在 R 的 POSIXct 函数中获取多个时区
- c++ - 三元表达式返回初始值设定项列表作为范围 for 循环中的范围表达式会产生意外行为
- javascript - 根据另一个数组查找数组中元素的索引
- javascript - 试图显示来自多个动态选择框的特定结果
- python - 查找多个模式并合并
- extjs - EXTJS Ext.window.Window 句柄宽度
- node.js - Nodejs 异常没有被异步函数捕获