貌似是类型转换的问题。。
时间:2011-12-14
来源:互联网
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这句话可以用来检测数据流是否存在吗
作者: HXDSAMA 发布时间: 2011-12-14
TClist不知道是什么,但你可以看看其中的参数是什么类型的
作者: bunliney 发布时间: 2011-12-14
CanWrite 是用来判断是否可以写入的。
TClist不知道是什么,但你可以看看其中的参数是什么类型的
Dim TClist As New List(Of TcpClient)
是否可以写入 是不是就能用来判定客户端是否连接啊
作者: HXDSAMA 发布时间: 2011-12-14
=>
ns = TClist(ListView1.Items(i).ToString()).GetStream()
作者: dongxinxi 发布时间: 2011-12-14
如果 CanWrite 为 true,则 NetworkStream 将允许调用 Write 方法。
作者: bunliney 发布时间: 2011-12-14
TClist 既然是List(Of TcpClient),后面括号中应传入的是Integer类型的索引值,而你传入的是string,当然会类型转换失败了。
如果 CanWrite 为 true,则 NetworkStream 将允许调用 Write 方法。
= =你说了一堆错误 那应该怎么解决呢
作者: HXDSAMA 发布时间: 2011-12-14
ns = TClist(ListView1.Items(i).ToString).GetStream()
=>
ns = TClist(ListView1.Items(i).ToString()).GetStream()
亲 这样也是错的
作者: HXDSAMA 发布时间: 2011-12-14
引用 4 楼 bunliney 的回复:
TClist 既然是List(Of TcpClient),后面括号中应传入的是Integer类型的索引值,而你传入的是string,当然会类型转换失败了。
如果 CanWrite 为 true,则 NetworkStream 将允许调用 Write 方法。
= =你说了一堆错误 那应该怎么解决呢
说的很明白了啊,把TClist括号中的换成integer类型的变量啊
作者: bunliney 发布时间: 2011-12-14
Integer肯定可以,比如TClist(i),string型应该是不可以的
你的参数就是string型
TClist(ListView1.Items(i).ToString())
你想要做的是从TClist()中寻找和ListView1.Items(i)相当的记录吗
作者: bearlin081001 发布时间: 2011-12-14
你看下TClist()括号里面的参数都可以是哪些类型,
Integer肯定可以,比如TClist(i),string型应该是不可以的
你的参数就是string型
TClist(ListView1.Items(i).ToString())
你想要做的是从TClist()中寻找和ListView1.Items(i)相当的记录吗
- -嗯 然后进行判定是否连接。。肿么弄呢
作者: HXDSAMA 发布时间: 2011-12-14
如果Indexof()未找到的话,返回值应该是-1
作者: bearlin081001 发布时间: 2011-12-14
j=TClist.Indexof(ListView1.Items(i));
ns = TClist(j).GetStream();
大体就这个意思
作者: bearlin081001 发布时间: 2011-12-14
用list的Indexof(),得到TClist的索引值,然后把TClist(i)准换赋值
如果Indexof()未找到的话,返回值应该是-1
用过这个办法 可是还是错的 你写一句看看 是不是我什么地方弄错了
作者: HXDSAMA 发布时间: 2011-12-14
这错吗? 打个断点看下ListView1.Items(i)是什么类型
作者: bearlin081001 发布时间: 2011-12-14
Dim j As Integer
j=TClist.Indexof(ListView1.Items(i));
ns = TClist(j).GetStream();
大体就这个意思
类型LISTVIEW的值无法转换为TCPCELIENT的值
作者: HXDSAMA 发布时间: 2011-12-14
我们得想办法把ListView1.Items(i)元素转换成tcpclient
查资料中...
作者: bearlin081001 发布时间: 2011-12-14
TClist中的元素都是tcpclient的,
我们得想办法把ListView1.Items(i)元素转换成tcpclient
查资料中...
汗 我也在查
作者: HXDSAMA 发布时间: 2011-12-14
实在不行再套个循环...
TClist(i).tostring()和stView1.Items(j).tostring()比较...
作者: bearlin081001 发布时间: 2011-12-14
TClist(i).tostring()是个什么样子...
实在不行再套个循环...
TClist(i).tostring()和stView1.Items(j).tostring()比较...
。。。变sting也一样不能换成CLIENT啊
作者: HXDSAMA 发布时间: 2011-12-14
如果相等,就取TClist(i)...
绕过转换...
作者: bearlin081001 发布时间: 2011-12-14
两边都变string比较
如果相等,就取TClist(i)...
绕过转换...
...我直接用tcpclient来弄了。。现在有办法来判断流是否存在么
作者: HXDSAMA 发布时间: 2011-12-14
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28