2016-03-04 3 views
2

Как получить доступ к приватным методам из одной формы в другую?Доступ к приватным методам другой формы

Для примера у меня есть этот метод в Form1:

Form1:

private void Test(){} 

Тогда как получить доступ к этому методу (частная аннулируются Test) в Form2, так что, что значения, что я вошел в Form2 будет отправлено в методе теста ??

Тест - это datagridview и в форме 2 мне нужно ввести Name с соответствующими значениями в нем, и если я нажму кнопку сохранения, он должен автоматически сохранить в datagridview, который находится в Form1.

+4

Сделать это 'public' – Ian

+0

Так что это должно быть public void Test() {} ?? Тогда какой должен быть код в Form2, затем? – James

+0

Нет, вы не можете получить доступ к «частным» вещам за пределами этого класса – Mangesh

ответ

5

private метод не предназначен для доступа за пределы его classвообще. Вы не можете доступ private метод, если вы не находитесь в class.

Самый простой способ для вашего случая было бы сделать метод privatepublic

public void Test(){} 

Кроме того, вы должны сделать метод с public обертку вызвать ваш private метод:

public void TestWrapper() { 
    Test(); //if test is private 
} 

А потом в вашем Form2, вы должны иметь instance от Form1 и вызвать метод следующим образом:

//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 

Но во всех случаях, в нижней строке:

Вы не можете вызвать метод private вне class.

+1

вы можете использовать отражение, чтобы вызывать частные методы – Kira

+0

@ А и да ... это тоже «обертка», так сказать ... – Ian

0

Если вы хотите получить доступ к методу другой формы, то это не может быть private. Вы должны сделать их как public, чтобы получить доступ к методу другой формы.

0

Вы не можете получить доступ к закрытому методу из другого класса. сделать его общедоступным, тогда вы сможете получить доступ к нему через другой класс.

Смежные вопросы