【问题标题】:Does a windows form have anything to uniquely identify it?Windows 窗体有什么可以唯一标识它的吗?
【发布时间】:2011-05-17 11:42:05
【问题描述】:

我有一堆表格需要放在一个列表中,并知道表格是否已经在里面。

由于与此问题无关的原因,我实际上无法引用列表中的表单。

winform 上是否有我可以使用的 ID 或 Guid?还是应该在我的所有表单中添加一个 Guid?

请注意,这是紧凑型框架。所以“ID”需要在 .NETCF 3.5 中可用。

【问题讨论】:

    标签: c# .net-3.5 compact-framework


    【解决方案1】:

    窗口句柄 (hWnd) 应该可以解决问题。查找表单的 Handle 属性。

    【讨论】:

      【解决方案2】:

      我不知道 winform 中存在任何 ID。因此,我相信您为每个表单实例设置 GUID 的方法可能是一个可行的解决方案。您的表单只是一个类,一个具有属性的对象,我看不出 MS 会添加一个 ID 来标识特定表单的特定原因,因为这确实是一个特定要求,只是我的看法。

      【讨论】:

        【解决方案3】:

        我对 Compact Framework 了解不多。我会寻找 Form.Tag 属性。如果有,请使用它。此属性旨在用于程序员的意愿。

        否则,您可以只概括一个 FormBase 类,您的其他表单将从该类继承。将 Guid 属性放入其中,以便您可以访问它来验证表单是否存在于列表中。

        此外,Contains 方法将一个对象作为参数,因此传递您期望的表单的实例会告诉您您的表单是否在列表中。虽然这可能有点矫枉过正,因为您必须实例化您的表单以验证其是否存在于列表中。

        另一种方法是使用Dictionary<Tkey, TValue>,您可以在其中为字典的 TKey 部分添加表单名称,为 TValue 添加表单名称。

        【讨论】:

          【解决方案4】:

          Form.Name(继承自 Control)也可以解决问题。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2010-09-06
            • 1970-01-01
            • 1970-01-01
            • 2021-10-02
            • 2012-03-17
            • 2015-08-18
            • 1970-01-01
            相关资源
            最近更新 更多