ウィンドウフォームで、タイマーコントロールを動的に作成しているときに、タイマーコントロールのオブジェクトを区別するにはどうすればよいですか?タイマーコントロールはn個です...実行時に表示されます。助けて ありがとう..
質問する
70 次
2 に答える
1
メインフォームにDictionaryタイプのインスタンスフィールドを作成するだけで、タイマーのTagプロパティを使用することもできます。
class MainForm(Form)
{
Dictionary<string, Timer> timers;
public MainForm()
{
InitializeComponents();
timers = new Dictionary<string, Timer>();
}
public Timer AddTimer( string name, int interval, bool enabled, int id)
{
Timer t = new Timer();
t.Interval = interval;
t.Enabled = enabled;
t.Tag = id;
t.Ticks += new EventHandler(TimerEventProcessor);
timers.add(name, t);
return t;
}
public Timer GetTimer(string name)
{
if (timers.ContainsKey(name))
{
return timers[name];
}
else
{
return null;
}
}
private static void TimerEventProcessor(Object myObject,
EventArgs myEventArgs) {
Timer sourceTimer = myObject as Timer;
}
}
}
于 2012-10-16T05:37:32.683 に答える
0
タイマー制御をスレッドに置き換えることをお勧めします。無制限のタイマー制御には、スレッドよりも多くのリソースが必要になります。
タイマーコントロールを続行する場合は、配列に作成された各タイマーのコントロール名を保存することをお勧めします。配列を検索して、必要なタイマーを選択できます。
于 2012-10-16T05:39:39.380 に答える