繁体   English   中英

养表事件

[英]Raising form event

我发现“Windows Forms App (.NET Core)”项目缺乏普通“.NET framework”应用程序的功能。 我专门使用 .NET Core 3.1。

我希望能够在对象上引发表单事件,但找不到方法来做到这一点。 在我的示例中,我想在 System.Windows.Forms.TextBox 上调用 click。 我知道调用 TextBox.Focus() 基本上会模拟行为,但这不是重点。

为表单应用程序对象调用事件处理程序也不能完成这项工作。 它只调用我的自定义代码,而不是实际的基本事件处理程序。 并且 Control.RaiseEvent 在 .NET 核心中不存在。 我不认为 Control.Invoke 也可以完成这项工作,但我还没有测试过。

答案是控件事件可以通过子类控件调用。 例如

public class TestPictureBox : PictureBox
{
    public void CallClick(EventArgs e = null) => base.OnClick(e ?? EventArgs.Empty);
    public void CallResize(EventArgs e = null) => base.OnResize(e ?? EventArgs.Empty);
}

使用这些示例函数,您可以引发控件的事件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM