gpt4 book ai didi

c# - 在 WindowsFormsHost 中插入表单时出现 ArgumentException

转载 作者:行者123 更新时间:2023-11-30 18:58:45 27 4
gpt4 key购买 nike

在 WPF 应用程序中,我创建了 WindowsFormsHost 并想在其中插入一个包含 COM/ActivexForm控制。但后来我得到:

A first chance exception of type 'System.ArgumentException' occurred in WindowsFormsIntegration.dll
at System.Windows.Forms.Integration.WindowsFormsHost.set_Child(Control value)
at HomeSecurity.MainWindow..ctor() w c:\Users\R\Documents\Visual Studio 2013\Projects\HomeSecurity\HomeSecurity\MainWindow.xaml.cs:row 26
'HomeSecurity.vshost.exe' (CLR v4.0.30319: HomeSecurity.vshost.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\UIAutomationTypes\v4.0_4.0.0.0__31bf3856ad364e35\UIAutomationTypes.dll'. Symbols loaded.

这是 MainWindow 的构造函数。类 VideoStream 扩展类 Form

      public MainWindow() {
InitializeComponent();
VideoStream VideoStream = new VideoStream();//creating a Form containing Activex control
WindowsFormsHost Host = new WindowsFormsHost();//creating a host
try {
Host.Child = VideoStream;//setting content of Host, CAUSES THE EXCEPTION PRINTED ABOVE
}catch(Exception e){
Console.WriteLine(e.StackTrace);//output above
}
}

我不能长时间处理它,我没有更多的时间。如何解决这个问题?

最佳答案

嗯,您不能在其中添加 Form(TopLevelControl)。你必须先让它成为 child 控制。将 TopLevel 设置为 false 应该可以正常工作。

VideoStream.TopLevel = false;

注意:不仅对于 WindowsFormsHost,即使对于 Winforms 应用程序,您也不能在 Form 中添加 Form,除非 TopLevel 设置为 false。

关于c# - 在 WindowsFormsHost 中插入表单时出现 ArgumentException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20925966/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com