Как определить, возникло ли событие - PullRequest
1 голос
/ 02 мая 2011

Подскажите, как определить, какие события вызываются в winform или как добавить все вызванные события в список или файл в c #?

Ответы [ 5 ]

1 голос
/ 02 мая 2011

Вы можете использовать Управляемый шпион .Он отображает список процессов в виде дерева в левой части окна и PropertyGrid справа.Вы можете расширить процесс, чтобы увидеть окна верхнего уровня в этом процессе.

Когда вы выбираете элемент управления, PropertyGrid показывает свойства этого элемента управления.При нажатии на вкладку «События» будут отображаться такие события, как MouseMove, в текущем выбранном элементе управления в виде дерева.Чтобы начать запись событий, нажмите кнопку «Начать запись».Вывод будет отображаться так, как показано.enter image description here

1 голос
/ 02 мая 2011

По вашему вопросу звучит так, будто вы хотите видеть каждое событие, которое запускается. Для этого вам нужно будет подписаться на каждое событие. Если вы действительно хотите пойти по этому пути, вы можете создать один метод, который будет читать переданные переменные и сообщать вам, какое событие называется методом. Затем вы можете подключить этот метод к каждому событию в вашем приложении winform. Список будет огромным, но он даст вам представление о том, когда было запущено каждое событие.

0 голосов
/ 02 мая 2011

Чтобы получить события, которые объявлены или унаследованы текущим типом

 typeof(MyClass).GetEvents()

После этого для каждого вы можете добавить простой делегат

MyClass instance = new MyClass();
foreach (var e in typeof(MyClass).GetEvents())
{
   FieldInfo fi = typeof(MyClass).GetField(e.Name, 
                                       BindingFlags.NonPublic | BindingFlags.Instance);
   object value = fi.GetValue(instance);
   if (value == null)
   {
       e.AddEventHandler(instance, handler);
   }
}
0 голосов
/ 02 мая 2011

Если вы говорите о событиях Windows, вам нужно переопределить метод WndProc () .

Метод Control.WndProc

Основы API WndProc

0 голосов
/ 02 мая 2011

Я не уверен, я правильно понимаю ваш вопрос, но я все еще собираюсь попытаться ответить на него:
Когда вы подписываетесь на событие, ваш метод будет вызываться при возникновении этого события. В вашем методе вы можете записать, что событие было вызвано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...