线程中使用SaveFileDialog不能弹出窗体

在子线程中使用 SaveFileDialog 无法弹出窗体,主要是我们需要用主线程去处理SaveFileDialog ,

我们可以将子线程进行如下设置:

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

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

    t.SetApartmentState(ApartmentState.STA);//缺少这句话,就会出错误。
            t.Start();
        }

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

时间: 2024-09-16 18:10:26

线程中使用SaveFileDialog不能弹出窗体的相关文章

如何在java中实现依次弹出窗体?

问题描述 如何在java中实现依次弹出窗体? 5C 具体要求如下,窗体都是jframe,主窗体中有n个复选框,每个复选框对应一个窗体,勾选完以后,点击按钮,根据是否选中复选框,依次按顺序从上到下将复选框的窗体弹出,要求在前一个窗体关闭后,才能弹出下一个窗体.这个机制如何实现? 解决方案 了解下 JDialog并且注意它的 setModal(true)属性 解决方案二: 了解下 JDialog并且注意它的 setModal(true)属性 解决方案三: 那怎么知道前一个窗体关了没有,, 解决方案四

利用javaScript实现点击输入框弹出窗体选择信息

 这篇文章主要是对利用javaScript实现点击输入框弹出窗体选择信息进的实例行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 在这里奉上源代码,没有做样式处理,不过功能是可以的,希望大家可以和我交流交流!   代码如下: <html>  <head>   <title>点击弹出DIV选择信息</title>      <meta http-equiv="keywords" content="keyword1

ASP.NET1.0/2.0里用DIV层元素弹出窗体

asp.net 本文 Bilal Haidar 将带领您如何使用DIV元素来创建弹出的窗体,这种弹出即可以包含简单的HTML元素也可以包含ASP.NET服务器控件,而且在实现过程中没有使用传统的window函数和showModalDialog / showModelessDialog函数(传统的我们使用 window.open,或者showModalDialog 这样的函数来制作弹出窗口--天天注释) 最近我在用ASP.NET1.1技术来开发一个窗体,该窗体包含由三个控件组成的一个面板集合,这个

ASP.NET 1.0/2.0里用DIV层元素弹出窗体

本文 Bilal Haidar 将带领您如何使用DIV元素来创建弹出的窗体,这种弹出即可以包含简单的HTML元素也可以包含ASP.NET服务器控件,而且在实现过程中没有使用传统的window函数和showModalDialog / showModelessDialog函数(传统的我们使用 window.open,或者showModalDialog 这样的函数来制作弹出窗口--天天注释) 最近我在用ASP.NET1.1技术来开发一个窗体,该窗体包含由三个控件组成的一个面板集合,这个面板用来显示系统

Android中自定义PopupWindow实现弹出框并带有动画效果_Android

使用PopupWindow来实现弹出框,并且带有动画效果 首先自定义PopupWindow public class LostPopupWindow extends PopupWindow { public Lost lost; public void onLost(Lost lost){ this.lost = lost; } private View conentView; public View getConentView() { return conentView; } public L

wpf-WPF程序每次第一次运行到特定弹出窗体时报错,之后再重新执行到该处无任何问题

问题描述 WPF程序每次第一次运行到特定弹出窗体时报错,之后再重新执行到该处无任何问题 WPF程序每次第一次允许时通过ShowDialog弹出窗体时报"算术运算中发生溢出或下溢",但重新点击弹出窗体将不再报错. 解决方案 是不是程序加载前或者最小化的时候width/height读到了0,加上一个判断. 解决方案二: 如果将该弹出框放到流程的前面则不会有问题 -> 不知道你所谓的"流程"到底是怎样. 先理清思路,这个是个计算出的错.

各位C# 大神看过来,急!!,怎样让弹出窗体总在程序主窗体的最前面,而又不是顶级窗体。也就是该弹出窗体只是主程序的顶级窗体。当切换任务的时候,该窗体不显示出来。

问题描述 如题...bringtofornt不行,我切换到其他软件的时候,该弹出窗体还是一直在前面::先谢过 解决方案 解决方案二:privatevoidbutton1_Click(objectsender,EventArgse){Form2f2=newForm2();f2.Show(this);}解决方案三:Form..::.Show方法(IWin32Window)发送反馈向用户显示具有指定所有者的窗体.命名空间:System.Windows.Forms程序集:System.Windows.F

Android 中从屏幕左下角弹出Dialog动画效果的实现代码

MainActivity代码: import android.app.Dialog; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.Window; import androi

Android中自定义PopupWindow实现弹出框并带有动画效果

使用PopupWindow来实现弹出框,并且带有动画效果 首先自定义PopupWindow public class LostPopupWindow extends PopupWindow { public Lost lost; public void onLost(Lost lost){ this.lost = lost; } private View conentView; public View getConentView() { return conentView; } public L