关于对话框的OpenDialog方法

土著巫师 2011-08-03 01:24:19
在WinForm程序里调用对话框的OpenDialog方法很简单,现在有一个问题:在一个多线程的程序里通过下面这样的方法显示窗体(主窗体消息循环很忙(其它人开发的,没有源代码),所以想给自己的窗体另建一个线程消息队列):

public void NewFormMessageLoop()
{
new Thread(new ThreadStart(delegate
{
ApplicationContext Context = new ApplicationContext(this);
Application.Run(Context);
})).Start();
}


  说明:上面的this其实就是一个WinForm窗体,由主程序框架通过反射初始化生成的对象,不是new出来的,窗体显示及窗体上的各个控件都正常,但有一个按钮要导出DataGridView里的数据到EXCEL文件里,在导出时本想打开一个SaveDialog对话框,可是死活不显示对话框。

  1、怎么在多线程里使用对话框?网上查了,有再开一个线程实现的,但有问题:对话框不再是模态的了,也就是说可以随便点击起动的窗体和对话框,变成可以来回切换了;

  2、多线程里这种情况是不是就不能再用对话框了?(保持模态)
...全文
633 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
土著巫师 2011-08-06
  • 打赏
  • 举报
回复
自己再顶一下。
土著巫师 2011-08-04
  • 打赏
  • 举报
回复
自己顶一下。
土著巫师 2011-08-03
  • 打赏
  • 举报
回复
楼上,没关系,谢谢。
无常名 2011-08-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zongbao516 的回复:]

参考
[/Quote]

呃,发错地方了
无常名 2011-08-03
  • 打赏
  • 举报
回复
土著巫师 2011-08-03
  • 打赏
  • 举报
回复
补充说明一下,导出数据前调用的代码如下:

SaveFileDialog FileDialog = new SaveFileDialog();

FileDialog.DefaultExt = "xls ";
FileDialog.CheckPathExists = true;
FileDialog.Filter = "Excel文件(*.xls)|*.xls ";
FileDialog.InitialDirectory = Directory.GetCurrentDirectory();

if (FileDialog.ShowDialog() == DialogResult.OK)
{
FileName = FileDialog.FileName.Trim();
}
FileDialog.Dispose();

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧