黑马程序员技术交流社区
标题:
聊天程序奇怪问题
[打印本页]
作者:
王硕
时间:
2011-12-3 22:42
标题:
聊天程序奇怪问题
我做的聊天程序(最后一套视频的内容)不能传文件(一点发送文件就没有反应了,什么提示也没有),但是放在别人的电脑上就能传,还有别人做好的聊天程序放在我的电脑上就又不能传文件了,很明显是电脑问题,但是问题可能出在哪啊?很怪,关了防火墙杀毒软件都不管用,期待高手解答。。。
作者:
付炯
时间:
2011-12-4 23:03
你是说在接收端不显示保存文件对话框吧 你用的应该是win 7系统吧
上次邹老师提供了这样一种解决方案
//创建负责接收服务端发送来数据的线程
threadClient = new Thread(ReceiveMsg);
threadClient.IsBackground = true;
//如果在win7下要通过某个线程来调用文件选择框的代码,就需要设置如下
threadClient.SetApartmentState(ApartmentState.STA);
threadClient.Start();
复制代码
或者你直接在ShowDialog()方法中传入this也可以 就像这样
if (sdlg.ShowDialog(this) != DialogResult.OK)
return;
复制代码
这样做的具体原因还要问下老师 目前我也讲不清楚 呵呵
作者:
陆亚
时间:
2011-12-6 12:59
我今天也遇到这种情况,看了一下。大体上是这个原因。ShowDialog有两个重载方法
//用默认的所有者运行通用对话框。
public DialogResult ShowDialog();
// 参数: owner
// 任何实现 System.Windows.Forms.IWin32Window(表示将拥有模式对话框的顶级窗口)的对象。
public DialogResult ShowDialog(IWin32Window owner);
在Win7同时启动了两个程序,如果使用第一个方法,系统不知道究竟谁是对话框的owner,因此要显式加this,表示当前窗口(即服务端窗口)为对话框的owner,
我觉得这应该是Win7的一个不足。不过无关大局。小bug
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2