Redirect 如何在PowerBuilder中将事件从一个控件重新定向到另一个控件?

Redirect 如何在PowerBuilder中将事件从一个控件重新定向到另一个控件?,redirect,winapi,events,powerbuilder,Redirect,Winapi,Events,Powerbuilder,button控件可以使用TriggerEvent()函数触发datawindow控件的事件 我的代码中的button控件被设置为带有SetParent win32 API函数的DataWindow控件的子对象。SetParent外部函数将按钮从窗口移动到datawindow控件,但在SetParent之后,已为单击的事件编写的代码不再工作。这就是为什么我需要将button的clicked事件重定向到datawindow的buttonclicked事件 有一个使用win32 API调用重定向事件的

button控件可以使用TriggerEvent()函数触发datawindow控件的事件

我的代码中的button控件被设置为带有SetParent win32 API函数的DataWindow控件的子对象。SetParent外部函数将按钮从窗口移动到datawindow控件,但在SetParent之后,已为单击的事件编写的代码不再工作。这就是为什么我需要将button的clicked事件重定向到datawindow的buttonclicked事件

有一个使用win32 API调用重定向事件的好例子。下面是我在PowerBuilder中执行相同操作所需的链接


有人能看到这些代码,或者帮我按我想要的方式重定向事件吗?

你做的事情很艰难。找到datawindow控件的名称(例如dw_1),然后从命令按钮发出dw_1.event buttonclicked(args)


更好的是,将代码移动到父对象中的函数。控件是导航对象,它们实际上不应该有太多的代码(IMHO),而是在父对象上激发方法。

你做的事情很艰难。找到datawindow控件的名称(例如dw_1),然后从命令按钮发出dw_1.event buttonclicked(args)


更好的是,将代码移动到父对象中的函数。控件是导航对象,它们实际上不应该包含太多代码(IMHO),而是在父对象上触发方法。

是的,这是处理事件的简单方法。实际上,当我需要在数据窗口中为多行文本设置一个字段时,“艰难之路”的想法就开始了。RichText可以使用,但它不会只保存我需要的文本。我的目标是找到重定向事件的方法,因为我相信如果在PowerBuilder中使用win32 API,我可以做许多其他情况下不可能做到的事情。我重定向事件的主要目标是让我的PowerBuilder应用程序看起来像它运行的操作系统。我的意思是,如果我的应用程序运行在Windows7上,那么它的外观应该会像GUI一样更改为Windows7。如果我的应用程序在windows 8上运行,那么我的应用程序应该与windows 8的界面相似。尽管如此,我还是很有兴趣了解我的PowerBuilder应用程序如何超越一切限制,在.NET框架中做任何可能的事情。正如您所看到的,如果事件、函数和属性是用win32 API处理的,那么在PowerBuilder中可以做的事情就没有限制了。我知道PowerBuilder不是最好的开发工具,但至少有不同的方法。请查看如何在PowerBuilder中重定向事件。使用PowerBuilder会遇到的问题是,DataWindow仅呈现为两个UI控件:一个表示DataWindow外观的位图和一个浮动在当前有焦点的列的位图上方的编辑控件。您将无法通过Windows API修改DataWindow的外观。考虑到DataWIndow在普通PowerBuilder应用程序中的使用量,这意味着大多数应用程序将无法以这种方式进行修改。是的,确切地说,它的外观不是我想要的。SetParent使datawindow的子级的按钮没有放置在我想要的位置,当然需要更多的外部调用。SetParent使其成为子对象,但父数据窗口不知道该子对象是否存在。如果按钮没有在每一行显示出来,那么按钮几乎是无用的。不管PowerBuilder对象的SetParent函数的每一个意外行为,我认为重定向事件的知识将生成许多选项。请试一试。我相信你能做到。谢谢。是的,这是处理事件的简单方法。实际上,当我需要在数据窗口中为多行文本设置一个字段时,“艰难之路”的想法就开始了。RichText可以使用,但它不会只保存我需要的文本。我的目标是找到重定向事件的方法,因为我相信如果在PowerBuilder中使用win32 API,我可以做许多其他情况下不可能做到的事情。我重定向事件的主要目标是让我的PowerBuilder应用程序看起来像它运行的操作系统。我的意思是,如果我的应用程序运行在Windows7上,那么它的外观应该会像GUI一样更改为Windows7。如果我的应用程序在windows 8上运行,那么我的应用程序应该与windows 8的界面相似。尽管如此,我还是很有兴趣了解我的PowerBuilder应用程序如何超越一切限制,在.NET框架中做任何可能的事情。正如您所看到的,如果事件、函数和属性是用win32 API处理的,那么在PowerBuilder中可以做的事情就没有限制了。我知道PowerBuilder不是最好的开发工具,但至少有不同的方法。请查看如何在PowerBuilder中重定向事件。使用PowerBuilder会遇到的问题是,DataWindow仅呈现为两个UI控件:一个表示DataWindow外观的位图和一个浮动在当前有焦点的列的位图上方的编辑控件。您将无法通过Windows API修改DataWindow的外观。考虑到DataWIndow在普通PowerBuilder应用程序中的使用量,这意味着大多数应用程序将无法以这种方式进行修改。是的,确切地说,它的外观不是我想要的。SetParent使datawindow的子级的按钮没有放置在我想要的位置,当然需要更多的外部调用。SetParent使其成为子对象,但父数据窗口不知道该子对象是否存在。如果按钮没有在每一行显示出来,那么按钮几乎是无用的。不管PowerBuilder对象的SetParent函数的每一个意外行为,我认为重定向事件的知识将生成许多选项。请试一试。我相信你能做到。非常感谢。