Передать аргумент из класса в форму

243
25 апреля 2017, 04:59

Использую метод invoke action в форме работает отменно)

public void Active(Panel l)
{
      Task.Factory.StartNew(() =>
      {
        Thread.Sleep(2000);
        Invoke((Action)(() => { l.Visible = false; }));
      });
}

Но как работать через класс не знаю.

Мне нужно через класс вызвать его в главной форме ( использую кнопки )

P.S: При нажатие на кнопку, через класс ( где вызывается метод, что-то делается) оповестить пользователя, что метод сработал нормально. Я же передаю информацию в label на форме.

[Обновление]

На каждой кнопки вызываю данный метод:

Active(panel1);

чтобы панель через 2сек скрывалась.

Я же хочу метод Active перенести в класс, и от туда уже присваивать каждой кнопки метод

Answer 1

То что Вы хотите можно сделать так:

Класс у которого мы вызываем метод

class ActiveClass
{
    public void Active(Control control)
    {
        Task.Factory.StartNew(() => 
        {
            Thread.Sleep(2000);
            control.Invoke((Action)(() => control.Hide()));
        });
    }
}

Код формы

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
        ActiveClass active = new ActiveClass();
        active.Active(button1);
    }
}
Answer 2

Нашёл решение данной проблемы) Как и хотелось через класс!

public static void Active(Panel l)
{
      Task.Factory.StartNew(() =>
      {
        Thread.Sleep(2000);
        l.Invoke((Action)(() => { l.Visible = false; }));
      });
}
READ ALSO
Не могу подключить Bootstrap

Не могу подключить Bootstrap

Bootstrap подключается только по адресу localhost/site/ , если вести localhost/site/index/index (это одна и та самая страница )то работать уже не будетПолучатся что...

303
Создание меток программно

Создание меток программно

Допустим имеется массив меток:

223
Система бэкапов на php и cron

Система бэкапов на php и cron

Коллеги, такая задача возникла

291
Регулярные выражения (get строка)

Регулярные выражения (get строка)

Добрый деньПомогите написать регулярное выражение чтобы пропускало строки примерно такого вида:

289