Visual Studio winforms 应用程序将跟踪消息发送到单独的消息框

问题描述 投票:0回答:1

我正在 Visual Studio 2022 版本 17.11.5 中使用 C# 开发 Windows 窗体应用程序

当我尝试使用 GUI 编辑表单时,Visual Studio 会将调试和跟踪消息发送到消息框,如下所示。

跟踪监听器消息:

Trace listener message

输出窗口显示消息 -

trce: Notifying 1 'UI/ShowMessage' handlers

获取一个可能没问题,但在打开表单进行编辑之前它会抛出数十条这样的消息。

任何帮助将不胜感激。

我已尝试将代码移植到新的解决方案,但仍然存在问题。

重现问题

使用适用于 .NET 的 Windows 窗体控件库创建自定义控件

添加控件加载事件

private void UserControl1_Load(object sender, EventArgs e)
{
    Trace.WriteLine("Hello world!");
}

在同一解决方案中添加新的 Windows 窗体应用程序并使用 GUI 添加自定义控件。除了 Visual Studio 生成的代码之外,不需要任何代码。

当您打开表单进行编辑时,它会显示来自跟踪侦听器的消息。

你好世界消息:

Hello World message

visual-studio winforms
1个回答
0
投票

这似乎是 Windows 窗体现在的工作方式,或者是他们无法解决的问题 - 请参阅此 Github 问题。

您可以通过删除默认跟踪侦听器并添加您自己的跟踪侦听器来解决此问题。所以,在 Load 事件中:

Trace.Listeners.RemoveAt(0);
Trace.Listeners.Add(new DefaultTraceListener { LogFileName = @"c:\temp\trace.log" });
Trace.WriteLine($"{ DateTime.Now.ToString() }");

这只会将任何跟踪和调试输出转储到指定的文件中,您可以根据需要引用或忽略该文件。

© www.soinside.com 2019 - 2024. All rights reserved.