2011-10-20 16 views
0

私はタイマーコントロールを作成し、いくつかのプロパティにタイマーGUIのタイマークラス更新テキスト?

private void timerClose_Tick(object sender, EventArgs e) 
    { 
     this.Text = timerClose.Interval.ToString(); 
    } 

が、起きているしていないの

private void MyForm_Load(object sender, EventArgs e) 
    { 
     timerClose.Enabled = true; 
     timerClose.Interval = 10000; 
     timerClose.Start(); 
    } 

つのイベントを設定します。それを更新するには?

+0

あなたのUIスレッドはその時間に忙しいかもしれません。あなたのフォームはハングアップしていますか? – Vasya

+0

ダニが起こっていないと確信していますか?このチックで何をしているのかは、フォームのタイトルに 'timerClose.Interval'値(ここでは定数)を書いています。あなたのフォームに変更が表示されないのは正常です。あなたはチックでブレークポイントを追加しようとしましたか? – Otiel

答えて

1

いフォーム表示「10000」約10秒が割り当てられ、その後、フォームのキャプションは変更されませんか?

もしそうなら、あなたのプログラムはやるべきことをしています。タイマーが起動すると、フォームのキャプションがTimerのIntervalプロパティに変更されます。これは10000に設定されています。この値は変更されないため、フォームのキャプションは変更されません。

あなたの意図は、このように、すべてのタイマーティックを使用して、フォームのキャプション増分は、各目盛りにインクリメントクラスレベルのカウンタを作成することです場合:

int _tickCounter = 0; 

private void timerClose_Tick(object sender, EventArgs e) { 
    this.Text = (++_tickCounter * timerClose.Interval).ToString(); 
} 

このコードは、フォームのキャプションを変更します「10000へフォームが開いて10秒後に10秒ごとにこの値が10000ずつ増加します。

1

はちょうどあなたのタイマーが有効になっていることを確認し、それが開いた後、イベントハンドラが正しく

+0

確かに!私はビジュアルスタジオの直接を追加しました。私に助けてくださいまたは同様のコード –

+1

うーん...私はあなたの言葉とその作業ここで同じ条件をテストした。このタイマーに関しては、フォームにInitializeComponent()メソッドを追加したり、情報を表示したりすることができます。または、あなたのメインのUIスレッドがビジーであるかもしれません。 – Zenwalker

+0

http://ne7.upanh.com/b6.s18.d2/4f91b6ff01b2651c90deee3b5f5e5b93_36794857.untitled2.jpg http://ne8.upanh.com/b1.s12.d1/7455e2bbf29270af3397c5c1e3223660_36794858.untitled.jpg –