我怎样才能有一个自定义类的前。命名为Inputs
并在其中包含我所有的winForm按钮单击和Ui元素事件,而不是将其包含在主表单类中?
目前,我将在主窗体类中使用它,但是我想将其移至另一个类。
private void button1_Click(object sender, EventArgs e)
{
// Do something
}
最佳答案
嗯,有两种不同的方法可以做到这一点。但是,您可以跳过整个自动生成的Click处理程序,并定义自己的处理程序,以避免另一级Method调用。一个非常幼稚的方法是这样的:
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类文件中拥有所有的Handler方法。然后使用类似这样的方法:
(在
private void InitializeComponent()
中的Form1.Designer.cs
方法内部)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/