Это должно звучать странно, но это просто мое хобби. Я бы хотел, чтобы (настраиваемое) окно сообщений появлялось с кнопками YesNo, которые в идеале должны блокировать код. Но я должен иметь возможность щелкнуть родительскую форму, чтобы я мог закрыть окно сообщения без необходимости специально нажимать кнопки окна сообщения (эквивалентно нажатию кнопки «Нет» в окне сообщения).
что-то вроде этого:
void Foo()
{
CustomMsgBox.Show("do you really wanna delete?", CustomMsgBox.Buttons.YesNo);
//block the code here, but user should be able to click on form, so that its equivalent to have clicked No;
//if clicked No, return;
//delete.
}
Итак, решение, которое я подумал, состояло в том, чтобы сделать пользовательское окно сообщения немодальным, чтобы пользователь мог щелкнуть по форме, но я не могу заблокировать код. Как я могу это сделать?
Это будет выглядеть так:
void Foo()
{
NonModalMsgBox.Show("do you really wanna delete?", CustomMsgBox.Buttons.YesNo);
//block thread till user clicks on form or messagebox buttons.
//unblock when user clicks.
//if No, return;
//delete.
}
Изменить: я знаю, что это не стандартная практика, и я знаю, что немодальные формы не блокируются, а модальные - блокируются. Поэтому, пожалуйста, не рекомендуйте довольствоваться поведением модальной или немодальной формы. Мой вопрос: есть ли способ имитировать поведение ContextMenu с оконные формы.