Методы диалога вызова формируют статический класс в C # - PullRequest
0 голосов
/ 17 сентября 2010

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

Из этого диалога я вызываю дочерний диалог, который показывает массив в списке.*

Я знаю по переменной, является ли текущий диалог дочерним или родительским, но из метода в статическом классе, как я могу вызвать метод внутри дочернего диалога, чтобы обновить список, когда я улавливаю событие?

Ответы [ 3 ]

1 голос
/ 17 сентября 2010

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

public static class MyStaticClass
{
   public static void SomeMethod(Form myDialog)
   {
      myDialog.SomeMethodOnTheDialog();
   }
}
0 голосов
/ 31 июля 2013

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

Затем вы просто вызываете эти открытый метод из статического класса .

Это мини-пример, в котором я вызвал публичный метод (в моей главной форме) из статического класса. Я думаю, что это похоже на то, что вы делаете.


Основной фрагмент формы

public static void WriteToTextBox(string message)
{
    TextBox myLog = (TextBox)CITX12Parser.Main.ActiveForm.Controls.Find("txtLog", true).First();
    myLog.Text = message;
}

Фрагмент статического класса

public class LoggingUtils
{
    public static void TestLog(string msg)
    {
        Main.WriteToTextBox(msg + Environment.NewLine);
    }
}
0 голосов
/ 17 сентября 2010

Вам нужно изменить статический метод, чтобы он взял экземпляр Dialog в качестве параметра:

public static void UpdateArray(Dialog instance)
{
     // Initialize what you need

     instance.DoSomething();
}

Тогда вы бы все это в своем обработчике событий, как:

public void Dialog_EventHandler(object sender, EventArgs e)
{
    Dialog dialog = (Dialog) sender;
    UpdateArray(dialog);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...