首页 > 解决方案 > Datawindow 拖放事件并不总是返回对放置位置的控件的引用

问题描述

简而言之,我需要在被拖动后将一些窗口行为建立在控件被拖放到的对象类型上。只要目的地的目标控件是一列,这一切都很好,但如果它是任何其他对象,则不是。

假设我有一个包含两列和一个矩形的数据窗口。我们分别称它们为 c_1、c_2 和 r_1。

我将 c_1 拖放到 c_2 上:

dwo.name = c_2
dwo.type = column

这很好,正是我所期望的行为。

我将 c_1 拖放到 r_1 上:

dwo.name = datawindow
dwo.type = datawindow

返回对数据窗口本身的引用。这太宽泛了,不能用作构建任何有意义的东西的基础,至少在我的情况下是这样。

在测试中,除非它是一列,否则我似乎无法让拖放返回对放置位置控件的引用。这是有意的,还是我的环境出了问题?如果我需要将窗口行为基于 dwo.type 或 dwo.name 的值,我该如何解决这个问题?

标签: powerbuilderdatawindow

解决方案


使用功能GetObjectAtPointer

它可以让您准确地知道用户将某些东西放到了哪个对象上。

objectname~trow它返回一个您必须解析以识别您需要的形式的字符串。


推荐阅读