0

SQL Server データベースに接続しており、単純な CRUD 操作を実行できます。Form ここで、データベース内の人が今日誕生日を迎えたときにアプリに 1 秒(リマインダー フォーム) を表示させたいのですが、アプリを実行しても何も起こりません。

編集: リマインダー フォームが正しく表示されるようになりましたが、そのフォームを閉じようとすると、次のエラー メッセージが表示されます。

破棄されたオブジェクトにアクセスできません。オブジェクト名: 'Form2'。

これが私のコードです:

public partial class Form1 : Form
{
    Timer timer = new Timer();
    Form2 forma = new Form2();

    public Form1()
    {
        InitializeComponent();
        var data = new BirthdayEntities();
        dataGridView1.DataSource = data.Tab_Bday.ToList();

        timer.Tick += new EventHandler(timer_Tick); 
        timer.Interval = (1000) * (1);             
        timer.Enabled = true;                       
        timer.Start();                              
    }

    private void timer_Tick(object sender, EventArgs e)
    {
        Boolean flag = false;
        IQueryable<Tab_Bday> name;

        using (var data2 = new BirthdayEntities())
        {
            name = (from x in data2.Tab_Bday
                    select x);

            foreach (var x in name)
            {
                if (x.Datum.Day == System.DateTime.Now.Day && x.Datum.Month == System.DateTime.Now.Month)
                {
                    flag = true;
                    break;
                }
            }
        }

        if (flag == true)
            forma.Show();
    }
4

4 に答える 4

0

これがあなたのセットアップ方法ですTimer

public void TimerSetup() {
    Timer timer1 = new Timer();
    timer1.Interval = 1000;     //timer will fire every second
    timer1.Tick += OnTimedEvent;
    timer1.Enabled = true;
    timer1.Start();
}

private static void OnTimedEvent(object source, ElapsedEventArgs e)
{
    Console.WriteLine("The Elapsed event was raised at {0}", e.SignalTime);
}
于 2013-07-05T17:29:37.347 に答える