Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF启动新的Winform应用程序_C#_Wpf_Winforms_Cefsharp - Fatal编程技术网

C# WPF启动新的Winform应用程序

C# WPF启动新的Winform应用程序,c#,wpf,winforms,cefsharp,C#,Wpf,Winforms,Cefsharp,我一直在WPF工作,并试图从该区域启动Winform。唯一的解决方案是将其作为ShowDialog打开。这是一个bug,还是我们可以预期将来会出现任何问题? 我的另一个程序位于同一个解决方案中,但不在同一名称空间中 WindowsFormsApplication1.Form1 program2 = new WindowsFormsApplication1.Form1(); program2.ShowDialog(); 我刚刚测试了这个,它对我很有效: public partial class

我一直在WPF工作,并试图从该区域启动Winform。唯一的解决方案是将其作为ShowDialog打开。这是一个bug,还是我们可以预期将来会出现任何问题? 我的另一个程序位于同一个解决方案中,但不在同一名称空间中

WindowsFormsApplication1.Form1 program2 = new WindowsFormsApplication1.Form1();
program2.ShowDialog();

我刚刚测试了这个,它对我很有效:

public partial class MainWindow : Window
{
    private Form winForm;
    public MainWindow()
    {
        InitializeComponent();
    }

    private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
    {
        winForm = new WinForm1();
        winForm.Show();
    }
}
我相信您的问题最有可能是由于您的程序2在尝试调用Show之后立即超出范围,这比您看到的要快。ShowDialog之所以能够工作,是因为它是一个阻塞调用,将窗口保持在作用域内并一直打开,直到关闭为止


尝试将program2声明为WPF窗口类中的字段,而不是局部变量。这将使它保持在范围内。

我发现了问题。。。program2.Show无法运行的原因是,在通过javascript启动第二个程序的过程中,Cefsharp没有加载javascript。您可以通过将这些问题标记到来识别这些问题

 if (browser.CanExecuteJavascriptInMainFrame)
                    {
                        WindowsFormsApplication1.Form1 program2 = new WindowsFormsApplication1.Form1();
                        program2.Show();
                    }

C语言与这个问题有什么关系?没有C标记,只有C标记。标签很重要,应该是正确的。不,我没有投票关闭。请看你的标签。c、 wpf和winforms。c标记用于c编程语言。因此我的问题是:C语言与这个问题有什么关系。这是为了澄清你的问题和标签。这就是为什么我问这个问题,而不是投反对票、打旗子,或者只是在没有澄清你的意图的情况下做出改变。你是这么说的吗?表演不管用吗?我从未尝试过以这种方式完全混合它们,但这对我来说似乎很奇怪。我应该提到这一点,但我的另一个程序位于同一个解决方案中,但不是同一个命名空间。这不会影响任何事情。在我的测试中,两个窗口也是同一个项目的一部分。这应该可以在单独的项目中使用,甚至当WinForms窗口来自引用的程序集时也是如此。在这里,当我使用Show新程序暂停/崩溃时,此程序中没有任何内容。在64位工作。。。两者都有。您遇到的问题一定是在其他地方,而不仅仅是因为从WPF调用WinForms窗口上的Show。我以最简单的形式重新创建了它,它工作得非常完美。我很乐意为你看一看你的项目,如果你能给我访问权的话。你确定它不是WinformHost吗?我使用的是Visual basic 2015.Net 4.6.1。