在模块中调用主窗口上的控件问题
现有一个服务器程序,处理任务的代码放在一个模块中
程序只有一个主窗口和一个模块,程序启动后循环接收连接请求,有客户端连接的时候启动一个线程处理,线程里面判断客户端请求类型后调用模块中的function来处理请求.
这时问题就来了,在模块中的function执行期间需要向主界面上的一个textbox写记录,我试过直接用sv1.textbox.appendtext不行
在主程序里写了个public委托也不行 textbox的modifiers设置也public也不行 都没反应
后来发现直接byref过去就可以用 而且不用委托 很是郁闷 里面几百个function 没办法一个个传过去啊
我是个不算太新的新手..遇到这种问题基本就是死了~~各种跪求高手...实在没办法了
模块中的代码大概就是这样的
Namespace CSrv.Proc Public Class Tproc#Region "动作一" Public Function act1(ByRef tconn As SqlConnection, ByRef lister As Socket, ByVal tbstring As String, ByVal cip As String) As Boolean '处理过程太长就不帖了 '这里也包括了往主窗口的文本框中写记录 End Function#End Region End ClassEnd Namespace
Dim PControl As New CSrv.Proc.TprocPControl.act1(tconn,lister,tbstring,cip)
Public Sub TryAppendText(ctr As TextBox, text As String) If Not ctr.IsHandleCreated Then Return If ctr.InvokeRequired Then ctr.Invoke(Sub() ctr.AppendText(text)) Else ctr.AppendText(text) End If End Sub