gpt4 book ai didi

c# - 将按钮单击事件函数移动到 visual studio 中的其他类? - C#

转载 作者:太空宇宙 更新时间:2023-11-03 22:42:05 25 4
gpt4 key购买 nike

我怎样才能有一个自定义类 ex。命名为 Inputs 并将我所有的 winForm 按钮点击和 Ui 元素事件放在其中,而不是放在主窗体类中?

目前我会在主窗体类中使用它,但我想将它移到另一个类中。

    private void button1_Click(object sender, EventArgs e)
{
// Do something
}

最佳答案

好吧,有几种不同的方法可以做到这一点。但是您可以跳过整个自动生成的 Click 处理程序并定义您自己的处理程序以避免另一级别的方法调用。一个非常天真的方法是这样的:

public class FormInputHandler
{
private Form1 _form1;

public FormInputHandler(Form1 form1)
{
_form1 = form1;
_form1.Controls["button1"].Click += Button1ClickHandler;
}

private void Button1ClickHandler(object sender, EventArgs e)
{
// Do stuff
}
}

当然,我不一定会完全这样做。但我认为这说明了这一点。这就是你正在尝试做的事情。这样您就不必在 Form1 类文件中拥有所有的处理程序方法。然后使用这样的东西:

(在 Form1.Designer.cs 中的 private void InitializeComponent() 方法内)

private void InitializeComponent()
{
//
// button1
//

// Generated button1 stuff goes here.

//
// Form1
//

// Generated Form1 stuff goes here

// Call this at the end so that
// everything is already added to the form.
AttachInputHandler();
}

#endregion

private void AttachInputHandler()
{
this._inputHandler = new FormInputHandler(this);
}

private System.Windows.Forms.Button button1;
private FormInputHandler _inputHandler;

关于c# - 将按钮单击事件函数移动到 visual studio 中的其他类? - C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51705148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com