Отключение доступа к форме при открытии новой формы из библиотеки классов C#
У меня есть две формы окна Form1
а также Form2
и библиотека классов aC# CLProduct
,
Сейчас, Form1
уже открыт и метод в CLProduct
класс называется который показывает Form2
и на данный момент я хотел бы ограничить доступ к Form1
до тех пор Form2
закрыто.
У меня есть код ниже в моем методе в CLProduct, который загружает
var _frm2= new Form2();
_frm2.ShowDialog();
я знаю это ShowDialog
загружает модальный, который по умолчанию ограничивает доступ к Form1, когда ShowDialog
вызывается из Form1, но в моем сценарии ShowDialog
на самом деле вызывается из класса, который по понятным причинам не ограничивает Form1
как это не называется из Form1
Form2 работает в рабочем потоке, который создан в Form1 следующим образом
if (pPBackgroundWorker.IsBusy == false)
{
// Start the asynchronous operation.
pPBackgroundWorker.RunWorkerAsync();
}
Есть ли способ справиться с этим из Form1_Load()
?
1 ответ
Вы должны просто быть в состоянии позвонить ShowDialog
за From2
и передать Form1
в качестве аргумента и получить желаемое поведение. (_frm2.ShowDialog(_frm1)
)
Но, как отмечает HansPassant в комментариях, если Form2
не находит подходящего владельца, скорее всего, это означает, что он работает в рабочем потоке, что может привести к некоторым довольно неприятным ошибкам / проблемам.