读书人

貌似是类型转换的有关问题。

发布时间: 2012-02-26 20:19:44 作者: rapoo

貌似是类型转换的问题。。

VB.NET code
  Dim i As Integer        Dim ns As NetworkStream        If ListView1.Items.Count = 0 Then            Timer2.Enabled = False            Timer1.Enabled = False            Exit Sub        End If        For i = 0 To ListView1.Items.Count            ns = TClist(ListView1.Items(i).ToString).GetStream()                        Else                ns.Close()                ListView1.Items.Remove(ListView1.Items(i))            End If        Next

想用这段代码实现 自动检测所有添加到LISTVIEW中的客户端是否连接着,没有连接就去除显示
ns = TClist(ListView1.Items(i).ToString).GetStream() 这里的时候类型转换失败
还有If ns.CanWrite Then这句话可以用来检测数据流是否存在吗

[解决办法]
TClist 既然是List(Of TcpClient),后面括号中应传入的是Integer类型的索引值,而你传入的是string,当然会类型转换失败了。

如果 CanWrite 为 true,则 NetworkStream 将允许调用 Write 方法。
[解决办法]
你看下TClist()括号里面的参数都可以是哪些类型,
Integer肯定可以,比如TClist(i),string型应该是不可以的
你的参数就是string型

TClist(ListView1.Items(i).ToString())
你想要做的是从TClist()中寻找和ListView1.Items(i)相当的记录吗

读书人网 >VB Dotnet

热点推荐