如何模拟按下按钮?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何模拟按下按钮?相关的知识,希望对你有一定的参考价值。

我想测试一些表格。有没有办法模拟按下确定(或取消)按钮,以便按下按钮并触发与之关联的事件处理程序?

答案

最干净的方法是调用按钮的Click方法。由于以下原因,这比替代方案更好:

  • 您可以阅读OnClick属性,检查它不是nil,然后调用该方法。但这似乎毫无意义,因为Click方法已经做到了。重复此代码毫无意义。
  • 您可以直接调用事件处理程序,但这需要您的代码知道它。这意味着与实现细节的不期望的耦合程度。
  • 调用Click会复制用户单击时实际发生的情况。当用户按下按钮时会发生这种情况。例如,它处理与按钮关联的任何操作。它设置窗体ModalResult属性。等等。
另一答案

btn_ok.clickbtn_okClick(sender);

另一答案

调用OnClick事件处理程序不会调用Delphi的默认事件处理程序,而只调用用户实现的处理程序。我认为你应该创建自己的类来自TCustomButton,并实现一个调用Click方法的函数(它受到保护)。

另一答案

TSpeedButton的更正:

@David Heffernan描述的行为并不完全适用于组中的速度按钮。调用Click方法似乎不会影响按钮的“Down”状态。

为了解决这个问题,我使用了以下代码:

MyButton.Click;
MyButton.Down := True;
另一答案

最好使用Button =>的PerformClick()方法

button1.PerfomClick()

如果您的Button未处于正确的单击状态(启用为false或不可见),则不会执行click eventmethod。

以上是关于如何模拟按下按钮?的主要内容,如果未能解决你的问题,请参考以下文章

使用导航控制器按下后退按钮后如何防止前一个片段显示?

使用导航控制器按下后退按钮后,如何防止先前的片段出现?

如何使用代码在 Swift iOS8 中模拟按钮按下

通过按下 Android Studio 中的片段中的按钮进入新页面

如何模拟按下按钮?

如何在按下单个片段的手动后退按钮时返回上一个片段?