#c# #winforms #events
#c# #winforms #Мероприятия
Вопрос:
Я хочу отменить щелчок мыши, наведение курсора мыши вверх или опускание курсора мыши, даже если это происходит в моем элементе управления .NET.
Я надеялся, что в EventArgs
будет параметр Cancel, но я не вижу такого, как в TreeView.BeforeCheck
.
Есть ли другой способ, которым я мог бы сделать это или другое событие, которое я должен прослушать?
Комментарии:
1. Причина, по которой я задал этот вопрос, заключалась в возникшей у меня проблеме, которая, по-видимому, является ошибкой в TreeView: social.msdn.microsoft.com/Forums/en-US/winforms/thread / …
Ответ №1:
Просто переопределите обработчик и не вызывайте функцию базового класса.
Ответ №2:
Простым решением было бы просто отключить фокус, просто создайте свой собственный класс:
public class ViewOnlyTextBox : System.Windows.Forms.TextBox {
// constants for the message sending
const int WM_SETFOCUS = 0x0007;
const int WM_KILLFOCUS = 0x0008;
protected override void WndProc(ref Message m) {
if(m.Msg == WM_SETFOCUS) m.Msg = WM_KILLFOCUS;
base.WndProc (ref m);
}
}