访问其他形式的私有方法

Jam*_*mes 2 c# access-modifiers winforms

如何从一种形式访问私有方法到另一种形式?

例如,我在Form1中有这个方法:

Form1中:

private void Test (){}
Run Code Online (Sandbox Code Playgroud)

那么如何在Form2中访问该方法(private void Test),以便我在Form2中输入的值将在方法Test中发送?

Test是一个datagridview,在表单2中,我必须在其中输入带有相应值的Name,如果我按下save按钮,它应该自动保存在Form1中的datagridview中.

Ian*_*Ian 5

private并不意味着它的方法以外的访问class 在所有.你无法访问private,如果你不在方法class.

您的案例最简单的方法是制作private方法public

public void Test (){}
Run Code Online (Sandbox Code Playgroud)

或者,您必须创建一个public包装器方法来调用您的private方法:

public void TestWrapper() {
    Test(); //if test is private
}
Run Code Online (Sandbox Code Playgroud)

然后在你的Form2,你应该有instanceForm1,轻松地调用该方法是这样的:

//All these are inside Form2
Form1 form1 = new Form1();

//Somewhere in your code
form1.Test(); //if test is public, or
form1.TestWrapper(); //if test is private
Run Code Online (Sandbox Code Playgroud)

但在所有情况下,底线是:

你不能private在外面调用方法class.

  • 您可以使用反射来调用私有方法 (2认同)