私のプロジェクトでは、2つのフォームmainForm
とがありtestingForm
ます。mainForm
私は持っていますbutton1
、そして、testingForm
私は持っています:
Stopwatch measure = new Stopwatch();
ユーザーがクリックするbutton1
と、measure
ストップウォッチを開始し、それを使用して他のイベントを作成します。どうやってやるの?私はたくさん研究しましたが、何も役に立ちませんでした...
タイマーを、おそらくアプリケーションレベルで、両方が使用できるmainForm
スコープに入れることができます。testingForm
テストフォームで
Stopwatch measure = new Stopwatch();
public Stopwatch Watch { get { return measure; } }
mainFormで
testingForm frm = new testingForm();
frm.Watch.Start();
//...
frm.Watch.Stop();
Stopwatchをtestingformのプロパティにします。ボタンがクリックされると、メインフォームで新しいストップウォッチを作成し、それをtestingformプロパティに割り当てます。
テストフォームのコード
private Stopwatch _Measure;
public Stopwatch Measure
{
get
{
return _Measure;
}
set
{ _Measure = value;
// Do some stuff
}
}
メインフォームのコード
private void button1_Click(object sender, EventArgs e)
{
Stopwatch measure = new Stopwatch();
testingform.Measure = measure;
}
メインフォームにプログラムのすべての側面(ストップウォッチ、またはそれに関するもの)を含めて制御することを望んでいると仮定すると、この例に従うことができます。
変更する必要があるのは、ストップウォッチをMainFormのプロパティにし、Form2に参照によってアクションを呼び出させることだけです。