0
A
回答
0
你不能註冊上的應用提高了全體事件的全局處理程序,但實際上你可以註冊自己的處理程序進行靜態事件,反思的幫助:
public class Program
{
public static void Main(string[] args)
{
MethodInfo handler = typeof(Program).GetMethod("GlobalEventHandler");
IEnumerable<EventInfo> events = AppDomain.CurrentDomain
.GetAssemblies()
.Select(a => a.GetTypes()
.Select(t => t.GetEvents(
BindingFlags.Public |
BindingFlags.NonPublic |
BindingFlags.Static)
.Where(e => typeof(EventHandler)
.IsAssignableFrom(e.EventHandlerType))))
.SelectMany(e => e)
.SelectMany(e => e);
foreach (EventInfo evt in events)
evt.GetAddMethod(true).Invoke(null, new object[]
{
Delegate.CreateDelegate(evt.EventHandlerType, null, handler)
});
}
public static void GlobalEventHandler(object sender, EventArgs args)
{
Debugger.Break(); // <-- When a static event is fired, the application will break here
Console.WriteLine("An event was fired!");
}
的支持靜態事件並不是那麼多。
16實際上:
- Application.ApplicationExit
- Application.Idle
- Application.EnterThreadModal
- Application.LeaveThreadModal
- Application.ThreadExit
- ToolStripManager.RendererChanged SystemEvents.DisplaySettingsChanging
- SystemEvents.DisplaySettingsChanged
- SystemEvents.EventsThreadShutdown
- SystemEvents.InstalledFontsChanged
- SystemEvents.LowMemory
- SystemEvents.PaletteChanged
- SystemEvents.TimeChanged
- ComponentDispatcher.ThreadIdle
- ComponentDispatcher.EnterThreadModal
- ComponentDispatcher.LeaveThreadModal
相關問題
- 1. 打破Visual Studio調試器中的按鈕單擊事件
- 2. UrlRewrite打破的Visual Studio 2012調試器
- 3. 如何從腳本中打破Visual Studio 2010 JavaScript調試器
- 4. Visual Studio調試器:打破進入外部功能?
- 5. 英特爾Visual Fortran 2013 XE打破Visual Studio 2012中的JavaScript調試器
- 6. Visual Studio 2010 - C#UserControl事件觸發
- 7. XCode4調試器總是打破主要
- 8. 在Visual Studio中打印調試?
- 9. 如何防止Visual Studio在設計器上觸發事件?
- 10. 在Visual Studio 2010中更新觸發器
- 11. 調試器C#或Visual Studio中打印調試信息
- 12. Visual Studio BreakPoint觸發器
- 13. 奇怪的問題 - 更改事件觸發器只在IE中調試
- 14. visual studio 2010調試構建破壞
- 15. 無法在Visual Studio 2013調試器中調試CRT源文件
- 16. JavaScript或jQuery的事件,只要選定的值發生變化就會觸發
- 17. 只要用戶將手指放在屏幕上就觸發事件
- 18. 如何在Visual Studio Community 2013中觸發生成後事件?
- 19. 在Visual Studio 2005中沒有觸發GridView_RowUpdating事件
- 20. Visual Studio 2008調試;打破值寫入時
- 21. 調試器在Visual Studio中不工作
- 22. 在Visual Studio中發佈事件後
- 23. Visual Studio 2010不要調試在breakPoints
- 24. 調試在Visual Studio
- 25. Visual Studio:在調試中查看MyList類,就好像它是DataGrid
- 26. 新的處理程序觸發Visual Studio中的調試失敗
- 27. 在空JComboBox觸發器上調用addItem觸發器actionPerformed事件
- 28. 在Visual Studio中調試Webkit
- 29. 在Visual Studio中調試Boo
- 30. 在Visual Studio中調試Javascript
哪個事件?訂閱它,把斷點,瞧.. – Sinatr
https://msdn.microsoft.com/en-us/library/system.diagnostics.debugger.break(v=vs.110).aspx – apocalypse
讓我解釋一下: 我處於調試器模式。只要代碼中的任何現有事件觸發,我都想要休息一下。我有100000行代碼和200個事件。我只是想在任何現有事件正在發射時看到一個突破。 我希望你現在明白。 – TheOnionMaster