我有两个程序:DesktopApp1
和DesktopApp2
。它们都是Windows窗体,但是第一个输出到 Class库(.dll),第二个输出引用它。
表格1(dll):
namespace DesktopApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public void generate()
{
crystalReportViewer1.ReportSource = @"C:/Users/me/rel1.rpt";
}
}
}
表格2:
// ...
using DesktopApp1;
namespace DesktopApp2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
DesktopApp1.Form1 r = new DesktopApp1.Form1();
// The Form 1 window doesn't opens. Nothing happens.
r.generate();
}
}
}
我的期望:
用户单击表格2 的button1
,然后将打开一个新的表格1 (DLL)窗口,执行generate
方法。
实际发生的情况:
用户单击button1
,鼠标光标变为加载状态,并且屏幕上没有任何显示。
我可能做错了什么?还有其他方法可以将Windows窗体转换为DLL并从另一个程序打开它吗?
答案 0 :(得分:1)
使用Form.Show(...)或Form.ShowDialog(...)方法。