我对这个问题感到非常难过。我试图制作一个"秒表"赋值,但是字段(DateTime startTime,DateTime stopTime)和只读字段(ElapsedTime)需要在业务层类上(Timing.cs.BL)业务层还需要有方法StartClock()和StopClock( )。
如果我的UI表单设置了... 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构建它。
提前感谢。
答案 0 :(得分: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;
}