現在C#で
①プログラム起動時にMainフォーム(frmMain)が現れる。
②そのMainフォームから別のフォームを現す。
③その別のフォーム(frmStart)は15秒経過したら、閉じる
のようなことを行いたいです。
しかし、下のようにタイマ内でCloseするとできません。
何が悪いのでしょうか?
もしよろしければアドバイスなどいただきたいです。
お願いいたします。
public partial class frmMain : Form { public frmMain() { InitializeComponent(); } private void frmMain_Load(object sender, EventArgs e) { WriteLog("\r\n☆-----------------------起動開始-----------------------☆"); frmStart.Show(); } //以下タイマ処理。ここでは一度だけ呼び出し。タイマ関数内で再帰呼び出しを実行 var timer = new System.Threading.Timer(TimerCallback); timer.Change(0, Timeout.Infinite);//第一引数は、1回目の実行までの待機時間。第二引数は、それ以降のループ間隔。 } public partial class frmStart : Form { static int CountDown = 0; static string label1Text; public frmStart() { InitializeComponent(); } static System.Windows.Forms.Timer myTimer = new System.Windows.Forms.Timer(); private void frmStart_Load(object sender, EventArgs e) { myTimer.Tick += new EventHandler(TimerEventProcessor); myTimer.Interval = 1000; myTimer.Start(); } private static void TimerEventProcessor(Object myObject,EventArgs myEventArgs) { CountDown++; Console.WriteLine(CountDown); if (CountDown>=15) { GlobalVariables.OpenTimeLagFlg = true; Console.WriteLine("15秒経過したので終了"); myTimer.Stop(); This.close(); } } コード
回答2件
あなたの回答
tips
プレビュー