0

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

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

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

4

1 回答 1

0

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

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);
}

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

于 2021-11-19T06:35:30.293 回答