我一直在WPF工作并试图从该领域开始Winform。唯一的解决方案是将其作为ShowDialog()
打开。这是一个错误还是我们可以期待将来出现任何问题?
我的其他程序位于同一个解决方案中,但名称空间不同。
WindowsFormsApplication1.Form1 program2 = new WindowsFormsApplication1.Form1();
program2.ShowDialog();
答案 0 :(得分:1)
我刚试过这个,它对我有用:
public partial class MainWindow : Window
{
private Form winForm;
public MainWindow()
{
InitializeComponent();
}
private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
winForm = new WinForm1();
winForm.Show();
}
}
我认为您的问题很可能是由于您program2
在尝试呼叫Show
后立即超出范围,因此关闭它的速度比您看到的要快。 ShowDialog
工作的原因是因为它是一个阻塞调用,将窗口保持在范围内并在关闭之前打开。
尝试在WPF program2
类中将Window
声明为字段,而不是作为局部变量。这将使其保持在范围内。
答案 1 :(得分:0)
我发现了问题...... program2.Show()
无效的原因是因为Cefsharp在第二个程序启动期间通过javascript加载进度条(Javascript)没有加载。您可以通过将其标记为
if (browser.CanExecuteJavascriptInMainFrame)
{
WindowsFormsApplication1.Form1 program2 = new WindowsFormsApplication1.Form1();
program2.Show();
}