毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 开发语言 >> 正文

弹出窗口一碰就假死掉了

更新时间:2015-3-6:  来源:毕业论文

我的程序有后台程序在读写数据,主窗口UI每秒刷新,然后遇到报警就弹出一个小窗口来显示。
这是我的弹出小窗口代码。现在的问题是弹出来的小窗口不能点击拖动,一碰它就显示未响应死在那儿了。求助应该怎么办。

 
public static void ShowAlarm(List<Alarm> lstAlarms)
        {
            if (lstAlarms.Count == 0) return;//lstAlarms是最新的报警,所以不会每秒都来执行后面的程序
            var dlg = dlgAlarm.CreateInstance();
            StringBuilder sb = new StringBuilder();
            foreach (var alarm in lstAlarms)
            {
                var config = frmMain.lstAlarmConfig.Find(p => p.Id == alarm.AlarmConfigId);
                if (config.DialogDisplay == false) continue;
                sb.AppendLine("时间   站点   变量   值   报警信息");               
                alarm._Time = new DateTime(alarm.Time);
                sb.AppendLine(string.Format("{0}   {1}   {2}   {3}   {4}", alarm._Time.ToString("HH:mm:ss"), alarm.StationName, alarm.TagName, alarm.Value, alarm.AlarmMsg));            
            }
            dlg.textBox1.Text = sb.ToString();
            int width = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width;
            int height = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height;
            int top = height - 35 - dlg.Height;
            int left = width - 5 - dlg.Width;
            Point pp = new Point(left, top);
            dlg.PointToScreen(pp);
            dlg.Location = pp;
            dlg.TopMost = true;
            dlg.Show();
            
        }
当你调用 ShowAlarm 的时候,应该确保在UI主线程调用它。
 private void button1_Click(object sender, EventArgs e)
        {
            Thread th = new Thread(ShowMessage);
            th.IsBackground = true;
            th.Start();
        }
 
        //非UI线程的操作方法
        void ShowMessage()
        {
            if (this.InvokeRequired)
            {
                Action<string> Show = (o) =>
                {                   
                    //非UI线程操作UI控件时的方法写到这里
                    //...
 
                };
                this.Invoke(Show, string.Empty);
            }    
        }

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。