zoukankan      html  css  js  c++  java
  • Form.ShowDialog(this)

    有时遇到一种情况,.ShowDialog()不显示。也不报错。例如以下:

    <span style="font-size:14px;"> private void button1_Click(object sender, EventArgs e)
            {
                Thread thread = new Thread(show);
                thread.Start();
            }
           void show()
           {
               Control.CheckForIllegalCrossThreadCalls = false;
               //this.Invoke(new Action(() =>
               //{
                   if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                   { }
               //}));
           }</span>
    原因分析:这属于线程间操作的一种异常。界面呈现和新创建的thread分开在两个线程中。在thread线程中

                      不可以进行界面呈现,即显示.ShowDialog();

    解决方法:1:加入參数this。

                            .ShowDialog(IWin32Window owner);    //owner:表示将拥有模式对话框的顶级窗体

    <span style="font-size:14px;"> private void button1_Click(object sender, EventArgs e)
            {
                Thread thread = new Thread(show);
                thread.Start();
            }
           void show()
           {
               Control.CheckForIllegalCrossThreadCalls = false;
               //this.Invoke(new Action(() =>
               //{
                   if (saveFileDialog1.ShowDialog(this) == DialogResult.OK)
                   { }
               //}));
           }</span>

                      2:使用Invoke

            private void button1_Click(object sender, EventArgs e)
            {
                Thread thread = new Thread(show);
                thread.Start();
            }
           void show()
           {
               // Control.CheckForIllegalCrossThreadCalls = false;
               this.Invoke(new Action(() =>
               {
                   if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                   { }
               }));
           }

  • 相关阅读:
    【Java8】 @FunctionalInterface 函数式接口
    集合使用copy与mutableCopy的区别
    GCD中的dispatch_sync、dispatch_sync 分别与串行、并行队列组合执行小实验
    podspec文件介绍
    iOS系统app崩溃日志手动符号化
    webView文本长按显示英文
    深拷贝
    view向全屏延伸时的属性设置
    iOS 模拟器截屏快捷键
    mysql 优化常用语句
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/6753447.html
Copyright © 2011-2022 走看看