我试图通过简单地调用来导致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相同。
答案 0 :(得分:5)
我不熟悉Prism,但这对我来说就像WinForms按钮。如果是,那么您可以拨打PerformClick
。
OKbtn.PerformClick;
.net事件比VCL事件复杂得多。最重要的是它们是多播的,这意味着可以连接多个处理器。这样做的一个结果是调用事件要复杂得多。
答案 1 :(得分:0)
如果您要定义自己的类,第二个选项是为事件公开一个公共“raise”处理程序,例如
event Click: ClickEventhandler; public raise;
这导致编译器将正确的方法设为public,以便其他类可以调用“Click()”来调用该事件。 (当然,任何其他非私人能见度也都有效。)