gpt4 book ai didi

.net - 从 VB.NET 中的另一个类/线程访问 TextBox 控件时出现问题

转载 作者:行者123 更新时间:2023-12-03 13:21:56 25 4
gpt4 key购买 nike

我试图从另一个类和线程访问richtextbox,然后是ui,我似乎无法让它工作。我目前拥有处理公共(public)类内部工作的子类及其共享子类,我将从几个不同的类和线程中调用它,但我似乎又无法让它工作。代码看起来像这样。

Public Class SharedSubs

Public Shared Sub console(ByVal message As String)
Dim c As New Form1
If c.consoleBox.Text.Length > 0 Then
If c.consoleBox.Text.Substring(c.consoleBox.Text.Length - 3, 3) = "..." Then
c.consoleBox.AppendText(message)
ElseIf c.consoleBox.Text.Substring(c.consoleBox.Text.Length - 1, 1) = "." Then
c.consoleBox.AppendText(ControlChars.NewLine & timeStamp() & message)
End If
Else
c.consoleBox.AppendText(timeStamp() & message)
End If
End Sub

我将使用 SharedSubs.Console("stringstring") 调用 sub当从 ui 线程调用它时它工作正常但是当它从任何其他线程或类调用它什么都不做时,我确认它通过这段代码但它没有在文本框中显示任何内容并且它不是由于委托(delegate)而导致的异常我想它会的。

我这样做完全错了吗?一些帮助会很棒,谢谢。

最佳答案

您不能从主/UI 线程以外的线程修改 Winforms UI 组件的显示。要从另一个线程更新,请查看 Control.Invoke 的文档。它有一个很好的例子。

http://msdn.microsoft.com/en-us/library/zyzhdc6b%28v=VS.100%29.aspx

关于.net - 从 VB.NET 中的另一个类/线程访问 TextBox 控件时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5683724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com