NotifyIcon ShowBalloonTip显示错误程序集信息问题排查
NotifyIcon气泡提示在后台线程触发时显示异常问题
我有一个包含Windows Forms项目和四个.NET Framework类库项目的解决方案。窗体上有一个NotifyIcon,会在特定场景下显示气泡提示:
- 其中一个类库通过
System.Threading.Thread后台线程触发事件 - 另一个类库通过
System.IO.FileSystemWatcher的Changed事件触发事件
这两类事件在窗体代码中由同一个方法处理,委托方法和自定义事件类(继承自EventArgs)位于独立类库中,被上述三个项目引用。
气泡提示包含自定义标题、提示文本,顶部会显示窗体程序集信息的Title参数。但出现异常:
- FileSystemWatcher触发事件时:气泡提示顶部标题显示正常
- 后台线程触发事件时:顶部标题显示错误且无图标,内容为
Microsoft.Office.ThisIsAssemblyName.exe.15(其中ThisIsAssemblyName是WinForms项目的程序集名称及exe文件名)
显示气泡提示的方法
public void showBallon(MessageEventArgs e) { ToolTipIcon icon; string title = ""; switch (e.MessageType) { case MessageType.Warning: case MessageType.Error: icon = ToolTipIcon.Error; title += "Probléma adódott"; break; case MessageType.Success: icon = ToolTipIcon.Info; title += "Sikeres művelet"; break; case MessageType.Information: default: icon = ToolTipIcon.Info; title = "Figyelem!"; break; } this.notifyIcon.ShowBalloonTip(5000, title, e.Message, icon); }
气泡提示对比(左正常,右异常)

已尝试的无效操作:
- 切换不同的.NET Framework目标版本(当前所有项目均为4.6.1)
- 移除并重新添加相关类库项目及源码
请问是什么原因导致了这种错误行为?
内容的提问来源于stack exchange,提问作者Adam Mester
相关产品推荐
相关产品推荐

