C# 定时关窗 & 跨线程操作窗口

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010243305/article/details/83184039

添加定时器

直接在代码中new一个定时器并绑定回调函数即可

跨线程关闭其他窗口

会报异常:
在这里插入图片描述

解决方法:
在你要操作的窗口的类的构造函数中指明允许跨线程操作。


    public partial class AlarmInfoWindow : Form
    {
        public AlarmInfoWindow()
        {
            InitializeComponent();
            CheckForIllegalCrossThreadCalls = false; //允许跨线程操作此窗口
        }
此处略去不可告人的一千行……

例程:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace EzHostCtrl
{
    public partial class AlarmInfoWindow : Form
    {
        public AlarmInfoWindow()
        {
            InitializeComponent();
            CheckForIllegalCrossThreadCalls = false; //允许跨线程操作此窗口
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void clearnAlarm_Button_Click(object sender, EventArgs e)
        {
            MessageBox.Show("报警已清除");
        }

        /* 自己添加的,用于向listBOX中添加项 */
        public void listBox1_addItem(String str)
        {
            this.AlarmList_listBox.Items.Add(str);

        }
        
    }
}

在这里插入图片描述

知道你想复制抄袭,重要部分代码:


        public AlarmInfoWindow alarmWindow;
        private void tspbtn_ErrorReport_Click(object sender, EventArgs e)
        {
            alarmWindow = new AlarmInfoWindow();
            alarmWindow.listBox1_addItem("DFDG");
            alarmWindow.Show();
            /*创建定时器*/
            System.Timers.Timer aTimer = new System.Timers.Timer();
            aTimer.Interval = 5000;
            aTimer.Elapsed += ATimer_Elapsed_AlarmWindDead; //定时时间到的时候的回调函数
            aTimer.AutoReset = false;//这里填否,不然会反复执行回调函数
            aTimer.Enabled = true;  //启动定时器

        }
        /* 定时器回调函数 */
        private void ATimer_Elapsed_AlarmWindDead(object sender, System.Timers.ElapsedEventArgs e)
        {
            alarmWindow.Close();          
        }

       

猜你喜欢

转载自blog.csdn.net/u010243305/article/details/83184039