如何在按钮点击事件中调用另一个 class 的方法?

How to call a method from another class in a button click event?

我正在尝试从我的 AddTask class.

中的按钮单击事件调用我的 class (ListDisplay) 中的非静态方法 (LoadingListBox)
namespace Project
{
    public partial class ListDisplay : Form
    {

        public  void LoadingListBox()
        {
            //code
        }
    }
 }

namespace Project
{
    public partial class AddTask : Form
    {
         private void btnSubmit_Click(object sender, EventArgs e)
         {
             //code
             //I want to call LoadingListBox here
         }
    }
}

我尝试通过 ListDisplay listDisplayI = new ListDisplay(); 创建 ListDisplay 的实例,然后编写 ListDisplay.LoadingListBox();

此代码没有错误,但在调试时控制流不会转到它刚刚执行的方法。 我也尝试按照这个问题的答案建议去做:

Call a public method of main class from another class

但这会出现一个错误,因为我无法重载 btnSubmit_Click 方法,因为 Designer 吓坏了。所以我创建了一个新方法,它包含 btnSubmit_Click 的所有代码,称为 public static void addingTask(ListDisplay),但我必须创建一个 ListDisplay 的实例,以便将它作为参数放在 btnSubmit_Click 方法中因此最终得到两个不是我想要的实例(由于问题的回答)。

所以现在我一无所获,非常感谢您为调用此 LoadingListBox 方法提供的任何帮助。 谢谢!

您的两个选择取决于您是否需要在单击按钮时 ListDisplay 的新实例。

选项 1:

namespace Project
{
    public partial class AddTask : Form
    {
        private void btnSubmit_Click(object sender, EventArgs e)
        {
            var ld = new ListDisplay();
            ld.Show();
            ld.LoadingListBox();
        }
    }
}

选项 2:

namespace Project
{
    public partial class AddTask : Form
    {
        private ListDisplay _ld;
        public AddTask(ListDisplay ld)
        {
            _ld = ld;
        }

        private void btnSubmit_Click(object sender, EventArgs e)
        {
            _ld.LoadingListBox();
        }
    }
}