日期:2014-05-16  浏览次数:20752 次

关于.ShowDialog()的问题!!!在win7上死活不出对话框
我是在xp上运行正常,但是在win7 32位上就有问题,代码每次到ShowDialog()时候就死。
 SaveFileDialog sfDialog = new SaveFileDialog();
            sfDialog.Filter = "Excel文件|*.xls;";
            sfDialog.FileName = "未命名";
            System.Windows.Forms.DialogResult dlrOK = sfDialog.ShowDialog();
            if(dlrOK == System.Windows.Forms.DialogResult.OK)
           {。。。。。}
有没有大神帮忙看下,我在网上说是[STAThread]的问题,但我的本来就加了,求大神帮忙
------解决方案--------------------
 在win7中,用线程调用,不是主线程会出现错误,
所以应该把它交给主线程去处理

private void button1_Click(object sender, EventArgs e)
        {
            Thread t = new Thread(saveDialog);
            t.IsBackground = true;
            t.ApartmentState = ApartmentState.STA;
            t.Start();
        }

        public void saveDialog()
        {
            SaveFileDialog result = new SaveFileDialog();
            result.ShowDialog();
        }

------解决方案--------------------
最简单的改法
DialogResult reuslt = new SaveFileDialog().ShowDialog(this);