无法访问基础事件字段

时间:2011-08-09 15:43:52

标签: delphi events listbox delphi-prism

我试图通过简单地调用来导致TListBox doubleclick事件中的TButton Click事件:

Button1.Click;

我总是可以在Delphi XE和它下面的版本下执行此操作,但现在它在Delphi Prism中引发错误。错误消息是“无法访问基础事件字段”。那么,如何在另一个控件的事件中导致事件TListBox?

例如:

method UnitSelectDialog.UnitListBox_DoubleClick(sender: System.Object; e: System.EventArgs);
begin
   Okbtn.Click;
end;

上面的代码与单击表单上的OK Tbutton相同。

2 个答案:

答案 0 :(得分:5)

我不熟悉Prism,但这对我来说就像WinForms按钮。如果是,那么您可以拨打PerformClick

OKbtn.PerformClick;

.net事件比VCL事件复杂得多。最重要的是它们是多播的,这意味着可以连接多个处理器。这样做的一个结果是调用事件要复杂得多。

答案 1 :(得分:0)

如果您要定义自己的类,第二个选项是为事件公开一个公共“raise”处理程序,例如

event Click: ClickEventhandler; public raise;

这导致编译器将正确的方法设为public,以便其他类可以调用“Click()”来调用该事件。 (当然,任何其他非私人能见度也都有效。)