首页 新闻 赞助 找找看

winform 神奇的问题高手进

0
悬赏园豆:5 [已关闭问题] 关闭于 2013-03-19 23:27

1.Form2 打开后马上就关闭了???为什么??    

public partial class Form1 : Form    

{        

        public Form1()       

       {            

            InitializeComponent();        

       }

        private Thread tr;

        private void button1_Click(object sender, EventArgs e)        

        {           

          tr = new Thread(new ThreadStart(Do));           

          tr.IsBackground = true;           

          tr.Start();        

       }

        private void Do()        

        {            

           Form2 f = new Form2();

           f.Show();        

         }   

       }

2.MessageBox 不能到最前面来。。被Form2窗体挡住了...??为什么呀??    

public   partial class Form1 : Form    

{        

     public Form1()        

         {            

             InitializeComponent();        

         }

        private Thread tr;        

        private void button1_Click(object sender, EventArgs e)        

        {           

            tr = new Thread(new ThreadStart(Do));           

            tr.IsBackground = true;           

             tr.Start();

           Thread.Sleep(2000);           

            MessageBox.Show("晕!!!");        

         }

        private void Do()        

        {            

           Form2 f = new Form2(); f.ShowDialog();        

        }    

}

KeVinDurant的主页 KeVinDurant | 初学一级 | 园豆:5
提问于:2013-03-19 17:28
< >
分享
所有回答(2)
0

这么乱的代码,神人也不看,不过可以告诉你的是,对于线程里的代码,一写要加try catch,不然出异常软件就会自动退出。

路过秋天 | 园豆:4787 (老鸟四级) | 2013-03-19 17:31

现在不乱了吧

支持(0) 反对(0) KeVinDurant | 园豆:5 (初学一级) | 2013-03-19 17:52

@KeVinDurant: 有没用办法解决这个问题??

支持(0) 反对(0) KeVinDurant | 园豆:5 (初学一级) | 2013-03-19 23:18

@KeVinDurant: 

1:窗体的实例不应该在线程里被创建,要在线程里写代码,用Invoke调用主线程去实例化窗体。

2:改正1的代码你就都正确了。

支持(0) 反对(0) 路过秋天 | 园豆:4787 (老鸟四级) | 2013-03-20 21:01
0

不要在工作线程去show窗体或者访问,修改控件

陈希章 | 园豆:2538 (老鸟四级) | 2013-03-19 18:26

因为是查询的时候开多一个线程去加载一个正在查询的Form,(查询结束关闭那个线程),但是抛出异常后想MessageBox出异常信息。。这个时候会挡着!!请问怎么解决呀??

支持(0) 反对(0) KeVinDurant | 园豆:5 (初学一级) | 2013-03-19 23:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册