【发布时间】:2017-02-01 18:49:37
【问题描述】:
我有 2 个 Treeview 的一种形式,如下所示。
left_treeview_node1 | right_treeview_node1
left_treeview_node2 | right_treeview_node2
left_treeview_node3 | right_treeview_node3
left_treeview_node4 | right_treeview_node4
这里我们可以将左边的树节点拖放到右边进行映射。
现在用户打开了 2 个相同表单的实例,他正在将 left_treeview_node1 从第一个实例拖放到另一个相同表单实例的 right_treeview_node4。
那么如何区分另一个实例并停止支持从一个实例拖放到另一个实例。
同一表单的每个实例是否有不同的 GUID?
我们可以使用 Mutex 来区分相同形式的 2 个实例吗?
提前谢谢...
【问题讨论】:
-
设置名称属性。此外,事件参数包含指向控件的链接,并使用该参数获取控件。
-
在 DragDrop 事件msdn.microsoft.com/en-us/library/… 中,您可以将 sender.Parent 与此表单进行比较。如果 sender.Parent == this,它是表单的同一个实例。在事件上设置断点,查看Sender的属性找到表单引用
-
您可以随时将
public Guid WindowId {get;} = Guid.NewGuid();添加到表单中并用它来区分它们。