2016-11-29 3 views
0

私はこの問題をかなりうんざりしています。私は "ストップウォッチ"割り当てを作成しようとしていますが、フィールド(DateTime startTime、DateTime stopTime)とRead-onlyフィールド(ElapsedTime)はビジネス層クラス(Timing.cs.BL)上にある必要があります。メソッドStartClock()とStopClock()が必要です。C#で外部クラスのフィールドを使用する(ストップウォッチを作成する)

lblDisplay(経過時間の場合)、lstSplits(分割時間の場合)、btnStart、btnStop、btnReset、btnSplit。

私はTimeSpan、DateTime、およびelapsed.Add(TimeSpan.FromSeconds(1))を見てきました。

私の問題は、ビジネス層(Timing.cs.BL)にElapsedTimeメソッドを作成し、elapsedTimeをフォームUIのlblDisplayにキックする方法を知りません。 startClockとstopClockをフォームに渡すことはできますが、elapsedTimeを(BLで)生成する方法はわかりませんし、フォームに渡してそこで更新されるようにします。

Visual Studio 2015を使用してビルドします。

ありがとうございます。

+1

おそらく、宿題の割り当て全体をコピーして貼り付けてください。この矛盾の宝石よりも理解しやすいでしょう。 –

答えて

1

露出して消耗します。

ビジネス層では、が必要です。希望の値を入力してください。

class MyBusinessLayerClass 
{ 
    private StopWatch _stopWatch; 
    public TimeSpan ElapsedTime 
    { 
     get { return _stopWatch.Elapsed; } 
    } 
} 

、次いで何とか、UI層に値を消費します。毎秒経過時間を更新したいので、フォームにタイマーを追加してTickイベントをキャプチャします。

private void OnLoad(EventArgs e) 
{ 
    myTimer.Tick += new EventHandler(TimerEventProcessor); 
} 

private static void TimerEventProcessor(Object myObject, EventArgs myEventArgs) 
{ 
    MyBusinessObject o = GetMyBusinessObject(); 
    TimeSpan ts = o.ElapsedTime; 
    string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds/10); 
    this.lblTimeElapsed.Text = elapsedTime; 
} 
+0

ジョンありがとうございました。 –

関連する問題