Compact Framework 3.5 设置表单父级

Posted

技术标签:

【中文标题】Compact Framework 3.5 设置表单父级【英文标题】:Compact Framework 3.5 Set Form parent 【发布时间】:2011-10-03 02:45:52 【问题描述】:

在 .net Compact Framework 2.0 中,您可以将一个表单添加到另一个表单控件数组,基本上是另一个表单的父级。

_mainForm.Controls.Add(form);

.net cf 3.5 中不允许这样做并导致异常:

System.ArgumentException: Value does not fall within the expected range. at Microsoft.AGL.Common.MISC.HandleAr(PAL_ERROR ar) at System.Windows.Forms.Control._SetParent(Control ctlParent) at System.Windows.Forms.Control.set_Parent(Control value)

是否有解决方法或替代方法?我需要能够在另一个表单的面板内作为父表单。

【问题讨论】:

我认为不可能让面板成为表单的父级 【参考方案1】:

我认为这包含对您问题的答案:http://207.46.16.248/en-us/netframework/bb986636.aspx

尤其是这部分:

System.Windows.Forms.Form.Parent

说明 表单不能再作为父级。

以前的行为 在 .NET Compact Framework 1.0 中,表单可以作为任何其他控件的父级 支持子控件。在 .NET Compact Framework 2.0 中,表单 可以作为任何其他形式的父级。

新行为

在 .NET Compact 中 框架版本 3.5,表单不能为父级。

【讨论】:

我遇到了这个。我希望找到解决方法或替代方法。 好吧,为什么你需要你的表单是父级的?前段时间我正在处理 CF 3.5,但我不记得我的应用程序中的表单有任何问题,我需要对我的表单做任何明确的魔法 是系统现有的架构。我不想重做系统,但在维护它时想使用一些 linq-y 的优点。 所以您需要 .net 2.0 上的 LINQ?也许这些链接会对您有所帮助:***.com/questions/2138/linq-on-the-net-2-0-runtime、weblogs.asp.net/fmarguerie/archive/2007/09/05/… 但我认为这些是完整的框架版本而不是紧凑的。 或者,如果您有使用 LINQ 的实际需求,您将与您公司/项目中的决策者交谈并向他/她/他们解释 LINQ 基本上是 .net 3.5 的东西,没有将整个系统或至少部分系统迁移到新的框架版本中,这将是一项相当艰巨的任务。【参考方案2】:

.NET CF 3.5 中可以使用以下方法将表单控件复制到另一个表单

// Clear old form controls

oldform.Controls.Clear();

// Copy controls from newform to oldform

foreach (Control ctl in newform.Controls)

    oldform.Controls.Add(ctl);

【讨论】:

问题是关于将一​​个表单添加到另一个表单。

以上是关于Compact Framework 3.5 设置表单父级的主要内容,如果未能解决你的问题,请参考以下文章

c# - 针对 Compact Net Framework 3.5 编译时出错 - 方法 'GetString' 没有重载采用 '1' 参数

.NET Compact Framework 3.5 上是不是提供像 AutoMapper 这样的映射库?

Sql Server CE 3.5 和 .NET Compact Framework 2.0 SP2

如何使用 Compact Framework 加粗文本

以编程方式将表添加到 Microsoft SQL Server Compact 3.5 数据库

SQL CE Compact 3.5 表的标识列