Предотвратить клик по родительской форме при закрытии дочерней формы

В моем проекте cf.net у меня есть основная «родительская» форма, которая иногда отображает дочернюю форму следующим образом:

Subform A = new SubForm();
A.ShowDialog();
//Get a property from the SubForm and use it.

В моей подчиненной форме содержится несколько ссылокLabels. Событие щелчка linkLabel что-то делает и устанавливает диалоговый результат следующим образом:

this.TextProperty = SomeNeatValue;
this.DialogResult = DialogResult.OK;
//This subform disappears and code resumes on the main form.

Моя основная форма также имеет обработчик MouseUp(), который что-то делает, когда элемент управления не нажат. Но обработчик MouseUp() основной формы вызывается после того, как щелкнули linkLabel в SubForm, и SubForm закрылась!

Я хочу, чтобы linkLabel SubForm полностью потреблял щелчок, а основная форма не получала его, но я не могу найти способ предотвратить это. Может кто-нибудь мне помочь?


person Jake Stevenson    schedule 19.02.2009    source источник


Ответы (1)


Не используйте событие click для метки ссылки. Посмотрите, сможете ли вы найти способ использовать MouseUp вместо щелчка (который, возможно, работает при нажатии мыши).

У меня была такая же проблема с KeyUp/Down некоторое время назад, и единственный способ, которым я мог ее решить, заключался в том, чтобы постоянно использовать одно и то же событие во всем приложении.

person Quibblesome    schedule 23.02.2009
comment
К сожалению, метка ссылки не имеет событий MouseUp/MouseDown. Просто EnabledChanged, Click, GotFocus, LostFocus, ParentChanged, TextChanged. - person Jake Stevenson; 23.02.2009
comment
Наследовать от LinkLabel и переопределить MouseUp/MouseDown и не обрабатывать событие щелчка. - person Quibblesome; 24.02.2009