Имеется два .cs файла, которые должны между собой взаимодействовать, но происходит это как-то странно. Мне нужно вызвать функцию MainAction, которая находится в Class1, из Class2. Различными способами у меня максимум получалось сделать это два раза, а далее программа просто стояла на месте. В чём ошибка, ткните носом пожалуйста
Class1.cs
public partial class Class1 : MetroForm
{
public Confirm()
{
InitializeComponent();
backgroundoworker1.DoWork += fornewthread;
}
public void Action1(object sender, EventArgs e)
{
if (backgroundworker1.IsBusy != true)
{
backgroundWorker1.RunWorkerAsync();
}
else
{
MessageBox.Show("Error! Worker is busy.");
}
}
public void MainAction(object sender, EventArgs e)
{
//тут происходит много действий
}
}
Class2.cs
private void btn_click(object sender, EventArgs e)
{
if (var1 >= var2)
{
//здесь пробовал и такое:
Class1.action1(sender, e);
This.Close();
//и такое:
Class1.MainAction(sender, e);
This.Close();
}
}
Но ни один из этих вариантов не помог.
Чтобы обратиться к методу Action1
нужно создать экземпляр класса, т.к. метод не статический:
var instance = new Class1();
instance.Action1(sender, e);
Или же сделайте метод статическим:
public static void Action1(object sender, EventArgs e)
{
//Остальной код
}
Тогда вы сможете вызывать метод без создания экземпляра.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Как в Unity банально ограничить поворот объекта? Например, имеется обычный цилиндр, который поворачивается вокруг оси ХКак сделать, чтоб при...
Добрый вечерКак прочитать данные из подтаблицы на языке c# при помощи sql-запроса
Цель - вот такая раскладка