■2689 / inTopicNo.6) |
Re[2]: ウェイトのかけ方について |
□投稿者/ ぼのぼの (30回)-(2007/04/13(Fri) 13:52:12)
|
既にご存知かもしれませんが、Timerには3種類あるみたいですね。
http://www.atmarkit.co.jp/fdotnet/dotnettips/372formstimer/formstimer.html
http://www.atmarkit.co.jp/fdotnet/dotnettips/373threadtimer/threadtimer.html
http://www.atmarkit.co.jp/fdotnet/dotnettips/374timerstimer/timerstimer.html
しかし、一定間隔ごとの処理でテキストボックスに触るみたいなので、
System.Windows.Forms.Timerを使うのが現実的なのかな、と思います。
で、System.Windows.Forms.Timerを継承したクラスを使う
簡単なサンプルを作ってみました。こんな感じのはどうでしょう?
#めんどくさかったので「public変数」という横着をやらかしてますが。
using System;
using System.Windows.Forms;
namespace BonoTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private int _Counter = 1;
private void button1_Click(object sender, EventArgs e)
{
TimerEx timer = new TimerEx();
timer.Tick += new EventHandler(UpdateTextBox);
timer.Interval = 1000;
timer.Name = string.Format("Timer{0}", _Counter++);
timer.Start();
}
private void UpdateTextBox(object sender, EventArgs e)
{
TimerEx timer = (TimerEx)sender;
textBox1.Text += string.Format("{0} {1}\r\n", timer.Name, timer.Counter++);
textBox1.Select(textBox1.Text.Length, 0);
textBox1.ScrollToCaret();
textBox1.Update();
}
}
public class TimerEx : System.Windows.Forms.Timer
{
public string Name;
public int Counter = 1;
}
}
|
|