在一段给DATAGRID控件绑定DATATABLE对象的代码中,
加入线程的操作后提示"在某个线程上创建的控件不能成为在另一个线程上创建的控件的父级"
在CSDN的论坛中找到其他人的建议"使用委托的方法, 先获取控件的控制权,在对控件进行操作就可以了"
思路有了,就是实施.
第一步,声明委托和实例话委托
Private Delegate Sub BindDataGridDelegate() ' 创建委托和委托对象
Private myBindDataGridDelegate As BindDataGridDelegate = New BindDataGridDelegate(AddressOf selectdata) 'selectdata是包含datagrid的数据绑定的代码段
第二步,加入线程的准备
Private bindGridThread As Thread
Private Sub InvokeBindDataGrid() '// 调用非此线程创建的控件的操作必须用 Invoke 或 BeginInvoke .否则将抛出异常
dg_Ysinfo.Invoke(myBindDataGridDelegate, Nothing)
End Sub
Private Sub StopBindThread()
If Not bindGridThread Is Nothing Then
If bindGridThread.IsAlive Then
bindGridThread.Abort()
bindGridThread.Join()
End If
End If