0

我有一个输出到 TextBox 的 TextWriter。我已将 TextWriter 连接到 Console.Out:

// set application console output to the output text box
Console.SetOut(TextWriter.Synchronized(new TextBoxWriter(this)));

class TextBoxWriter : TextWriter
{
  public override void WriteLine(string value)
  {
    // output to text box
  }
}

这很好,但是我发现.NET框架本身正在将跟踪/调试输出写入控制台,因此我的窗口!

例如,用户可以单击在表单上创建控件的按钮。这将输出如下内容:

170,130 0,0

调用堆栈显示正在从外部代码调用文本编写器 WriteLine 函数以响应 MyForm.Controls.Add(...);

如果用户调整控件的大小,那么 .NET 框架会将如下废话写入控制台:

0.574257425742574 @ 1

调用堆栈显示正在从外部代码调用文本编写器 WriteLine 函数以响应 MyControl.Width = NewValue;

当我的应用程序是为调试和发布而构建时会发生这种情况。

我没有打开跟踪或调试功能。

即使未定义 DEBUG 和 TRACE 也会发生这种情况。

我的应用程序没有提及或做任何与调试或跟踪相关的事情。

我不会对控制台做任何其他事情。

我的应用程序没有调用 System.Diagnostics 中的任何内容。

使用 C#、.NET 4.0、Windows 7 64 位、Visual Studio 2010。

这真让我抓狂。关于下一步尝试什么的任何建议?

4

0 回答 0