C # Вызов метода из другой формы - PullRequest
2 голосов
/ 21 апреля 2011

Привет У меня есть 2 формы Form1 и Form2

В Form1 есть таблица, и есть мои записи, и есть пустота для обновления таблицы в Form1.

Форма 2 - это моя форма для вставки. Я вставляю данные в sqlserver. Хочу, чтобы Когда после сохранения записи в Форме2 для запуска Form1 Refresh void. (Когда Form1, Form2 открыта)

спасибо.

Ответы [ 4 ]

5 голосов
/ 21 апреля 2011

Форма 2 должна иметь ссылку на экземпляр формы Form1.Вы можете передать эту ссылку в Form2, когда нажата кнопка вставки:

Form2 insertForm = new Form2();
//Form2.ShowDialog(Me); - Correction - 'Me' is for VB. in C# it's:
Form2.ShowDialog(this);

Далее в Form2 вы можете получить доступ к Form1 следующим образом:

(Form1)this.Parent.RefreshTable();
0 голосов
/ 05 января 2015

попробуйте вызвать метод из другой формы:

if (System.Windows.Forms.Application.OpenForms["ParentFormName"] != null)
    {
        (System.Windows.Forms.Application.OpenForms["ParentFormName"] as   ParentFormName).MethodName(args);
    }
0 голосов
/ 21 апреля 2011

Настройте конструкцию для Form2 так, чтобы она принимала дополнительный параметр, например:

...
private Form1 mainWindow;
public Form2(Form1 mainWindow)
{
   this.mainWindow = mainWindow;
}
...
public void HaveSavedSql()
{
   this.mainWindow.RefreshAll();
}

Однако вы должны рассмотреть вопрос о Интерфейсах , чтобы вы могли разделить проблемы.Интерфейсы полезны для многих вещей!

0 голосов
/ 21 апреля 2011

В Form1, когда вы открываете Form2, присоединяете к событию Form2 OnClose/Closed или к пользовательскому событию Save, которое при его вызове обновляет таблицу в форме 1.

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