首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

[超级难!]将一个AppDomain中的From, 展示到主AppDomain中的DockPanel中, 报错.大家帮帮忙

2012-12-14 
[超级难!]将一个AppDomain中的From, 显示到主AppDomain中的DockPanel中, 报错.大家帮帮忙.本帖最后由 yeah

[超级难!]将一个AppDomain中的From, 显示到主AppDomain中的DockPanel中, 报错.大家帮帮忙.
本帖最后由 yeah_1999 于 2011-08-19 21:58:00 编辑



asmLoader = new SeperateAppDomainAssemblyLoader();
            asmLoader.LoadAssemblies("TQ.dll");
            DockContent dc = asmLoader.OpenWindow("TQ.PXTQPZ1");

            try
            {
                dc.Show(dockPanel1);  // dc.Show() 就没问题.
            }
            catch (Exception err)
            {
                Console.Write(err.ToString());
            }


窗口直接Show, 是没问题的, 但是显示在DockPanel中,就报错:

System.Runtime.Serialization.SerializationException: 程序集“System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”中的类型“System.Windows.Forms.Control+ControlCollection”未标记为可序列化。
   在 System.Windows.Forms.Control.get_Controls()
   在 System.Windows.Forms.Control.set_ParentInternal(Control value)
   在 System.Windows.Forms.Control.set_Parent(Control value)
   在 WeifenLuo.WinFormsUI.Docking.DockPane.SetParent(Control value) 位置 C:\Users\hy\Desktop\DockPanel\WinFormsUI\Docking\DockPane.cs:行号 688
   在 WeifenLuo.WinFormsUI.Docking.DockPane.SetParent() 位置 C:\Users\hy\Desktop\DockPanel\WinFormsUI\Docking\DockPane.cs:行号 667
   在 WeifenLuo.WinFormsUI.Docking.DockPane.RefreshStateChange(INestedPanesContainer oldContainer, DockState oldDockState) 位置 C:\Users\hy\Desktop\DockPanel\WinFormsUI\Docking\DockPane.cs:行号 960
   在 WeifenLuo.WinFormsUI.Docking.DockPane.ResumeRefreshStateChange(INestedPanesContainer oldContainer, DockState oldDockState) 位置 C:\Users\hy\Desktop\DockPanel\WinFormsUI\Docking\DockPane.cs:行号 942
   在 WeifenLuo.WinFormsUI.Docking.DockPane.InternalSetDockState(DockState value) 位置 C:\Users\hy\Desktop\DockPanel\WinFormsUI\Docking\DockPane.cs:行号 917
   在 WeifenLuo.WinFormsUI.Docking.DockPane.SetDockState(DockState value) 位置 C:\Users\hy\Desktop\DockPanel\WinFormsUI\Docking\DockPane.cs:行号 860
   在 WeifenLuo.WinFormsUI.Docking.DockPane.InternalConstruct(IDockContent content, DockState dockState, Boolean flagBounds, Rectangle floatWindowBounds, DockPane prevPane, DockAlignment alignment, Double proportion, Boolean show) 位置 C:\Users\hy\Desktop\DockPanel\WinFormsUI\Docking\DockPane.cs:行号 117
   在 WeifenLuo.WinFormsUI.Docking.DockPane..ctor(IDockContent content, DockState visibleState, Boolean show) 位置 C:\Users\hy\Desktop\DockPanel\WinFormsUI\Docking\DockPane.cs:行号 56
   在 WeifenLuo.WinFormsUI.Docking.DockPanelExtender.DefaultDockPaneFactory.CreateDockPane(IDockContent content, DockState visibleState, Boolean show) ?恢?C:\Users\hy\Desktop\DockPanel\WinFormsUI\Docking\DockPanelExtender.cs:行号 51
   在 WeifenLuo.WinFormsUI.Docking.DockContentHandler.Show(DockPanel dockPanel, DockState dockState) 位置 C:\Users\hy\Desktop\DockPanel\WinFormsUI\Docking\DockContentHandler.cs:行号 793


   在 WeifenLuo.WinFormsUI.Docking.DockContentHandler.Show(DockPanel dockPanel) 位置 C:\Users\hy\Desktop\DockPanel\WinFormsUI\Docking\DockContentHandler.cs:行号 763
   在 WeifenLuo.WinFormsUI.Docking.DockContent.Show(DockPanel dockPanel) 位置 C:\Users\hy\Desktop\DockPanel\WinFormsUI\Docking\DockContent.cs:行号 230
   在 WeifenLuo.WinFormsUI.Docking.DockContent.Show(DockPanel dockPanel)
[最优解释]
dockPanel1不是窗体级别的控件(实现IWin32Window)
http://msdn.microsoft.com/zh-cn/library/szcefbbd(v=vs.80).aspx
[其他解释]
应该是你有个东西得序列化,应该要加个
[serialization]
[其他解释]
DockPanel 如果不是Form的顶级子控件的话,好像要设置显示模式的

DocumentStyle 属性 什么Window的
[其他解释]

引用:
应该是你有个东西得序列化,应该要加个
[serialization]


嗯,但是DockPanel源码太复杂, 一时半会不知道加哪.
[其他解释]
up.
[其他解释]
up.
[其他解释]
这个问题有没有解决啊。
我也遇到了相同的问题。

热点排行