首页 新闻 会员 周边 捐助

请问 C# 中的 OpenFileDialog只能靠事件触发吗?

0
悬赏园豆:20 [已解决问题] 解决于 2013-04-20 13:27

如下,我这么写,运行if语句之后,没有打开文件对话框出现:

if (strRecvReq == "picReq")

{

OpenFileDialog dlg = new OpenFileDialog();

dlg.Title = "选择要发送的图片";                            

dlg.Filter = "Image files (*.jpg;*.bmp;*.gif)|*.jpg;*.jpeg;*.gif;*.bmp|AllFiles (*.*)|*.*";                            

if (DialogResult.OK == dlg.ShowDialog())                            

{                                

  SendPictures(dlg.FileName);

}

}

 

但是我这么写,就有打开文件对话框出现了:

//选择待发送图片        

private void button2_Click(object sender, EventArgs e)        

{            

OpenFileDialog dlg = new OpenFileDialog();            

dlg.Title = "选择要发送的图片";            

dlg.Filter = "Image files (*.jpg;*.bmp;*.gif)|*.jpg;*.jpeg;*.gif;*.bmp|AllFiles (*.*)|*.*";            

if (DialogResult.OK == dlg.ShowDialog())            

{            

SendPictures(dlg.FileName);           

}        

}

请问这是怎么个情况呀,因为特定需要,我不想通过点击按钮来打开对话框。请大侠帮帮忙:)

duanguyuan的主页 duanguyuan | 初学一级 | 园豆:136
提问于:2013-04-11 19:14
< >
分享
最佳答案
0

是否有抛出异常。如调用ole需要STA线程模型。Thread类创建的默认是STA线程模型,ThreadPool中创建的线程默认是MTA线程模型。可以通过线程的的td.SetApartmentState(ApartmentState.STA);方法进行设置。参考:http://q.cnblogs.com/q/48123/

 

收获园豆:11
滴答的雨 | 老鸟四级 |园豆:3660 | 2013-04-12 09:23
其他回答(6)
0

你确定你的if语句是ture?  你把if去掉试下,看对话框是否打开

收获园豆:1
Xiangism | 园豆:80 (初学一级) | 2013-04-11 21:00
0

if (strRecvReq == "picReq")这句后面肯定是没有进来了。

收获园豆:1
KeVinDurant | 园豆:5 (初学一级) | 2013-04-11 22:44
0

使用窗体加载事件,当窗体加载它就自动出来啦。

收获园豆:5
峰和日丽 | 园豆:110 (初学一级) | 2013-04-12 00:53
0

谢谢各位啦。if语句判断是结果真的,是我的程序太混乱了,openfiledialog是主窗口里的线程,我把这段程序放到自己新建的一个线程里,所以没有出现对话框。

duanguyuan | 园豆:136 (初学一级) | 2013-04-12 02:40
0

173844862.Net高级部落

收获园豆:1
辛巴 | 园豆:622 (小虾三级) | 2013-04-12 08:22
0

if...if  和if  ...else你的第一个if判断后面程序应该没进来

收获园豆:1
珍是唯一 | 园豆:4 (初学一级) | 2013-04-20 10:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册