Есть форма, на ней userControl который прилетает по dll, после выбора продукта с userControl, открываеться другая форма с дополнительными параметрами( у меня нет доступа к этой форме), на ней нажимаем кнопку принять, форма закрывается, мы выходим из функции. Теперь мне нужно запустить другую функцию в этом же классе, можно запустить ее через нажатие на кнопку в первой форме, но мне нужно что бы эта функция запускалась автоматически. Тоесть нужно вызвать событие вручную .Как это сделать?
public partial class CatalogPaletteControl : UserControl
{
public CatalogPaletteControl()
{
InitializeComponent();
}
private void CatalogPaletteControl_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
//do something
}
}
После загрузки CatalogPaletteControl_Load
поток заканчиваеться, тоесть ничего больше не происходит. Где вызывать button1_Click(null,null)
Обработчик события - это обычный метод. И вызвать его можно самым обычным способом.
Допустим, имеется такой метод-обработчик нажатия на кнопку
private void SomeButton_Click(object sender, EventArgs e)
{
// some code
}
Вызываем его:
SomeButton_Click(null, null);
Здесь в качестве параметров передаются null
.
Если в обработчике нужно знать, какая именно кнопка вызвала его, плюс нужно определённое значение аргументов события, то вызываем метод с параметрами:
SomeButton_Click(someButton, EventArgs.Empty);
Второй параметр можно явно создать: new EventArgs()
.
У класса Button
есть метод PerformClick, можно использовать его:
someButton.PerformClick();
Ещё один вариант, вынести в отдельный метод код, содержащийся в обработчике события:
private void SomeButton_Click(object sender, EventArgs e)
{
DoWork();
}
private void DoWork()
{
// some code
}
И вызывать этот метод там, где нужно:
DoWork();
Естественно, добавляем параметры, если они нужны.
Этот способ более правильный с точки зрения архитектуры: отделяем код бизнес-логики от GUI.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Подскажите как реализовать в WPF приложении условияНапример, я хочу, чтобы в зависимости от текста одного TextBlock'a изменялся цвет текста другого...
Необходимо получать данные о количестве мониторов, а так-же о рабочей области каждого из них, иметь возможность получить вычислить монитор,...