这是我第一次尝试以任何语言学习课程。我正在尝试创建一个停止监视的Windows窗体项目。我创建了一个具有启动秒表的StartClock方法的类,然后将经过的时间放入一个时间跨度变量中。然后我使用一个elapsedTime字符串,并将其设置为等于具有时间跨度变量的格式化字符串。代码如下。将值从一个地方传递到另一个地方
public class CStopWatch
{
Stopwatch sw = new Stopwatch();
private DateTime startTime;
private DateTime stopTime;
private String elapsedTime;
public String ElapsedTime
{
get
{
return elapsedTime;
}
}
public String StartClock()
{
sw.Start();
TimeSpan ts = sw.Elapsed;
elapsedTime = String.Format("{0:00}:{1:00}:{2:00}",
ts.Hours, ts.Minutes, ts.Seconds/10);
return elapsedTime;
}
public void StopClock()
{
// sw.Stop();
}
}
在Windows窗体我打电话给我的CStopwatch类的新实例,然后启动按钮点击事件,我开始我的形式计时器,叫我StartClock方法,然后我的时间间隔设置为每一秒。
在我的计时器滴答事件中,我设置我的标签以显示经过时间字符串变量。当我运行这个时,我不会有任何错误,但标签不会改变。以下是我的Windows窗体代码。
public partial class Form1 : Form
{
// string elapsedTime;
// public string elapsedTime { get { return elapsedTime; } }
CStopWatch sw = new CStopWatch();
public Form1()
{
InitializeComponent();
}
private void lblTime_Click(object sender, EventArgs e)
{
}
private void btnStart_Click(object sender, EventArgs e)
{
timer.Enabled = true;
sw.StartClock();
timer.Interval = 1000;
//Testing without using classes
/*
timer.Enabled = true;
sw.Start();
timer.Interval = 1000;
TimeSpan ts = sw.Elapsed;
string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}",
ts.Hours, ts.Minutes, ts.Seconds/10);
*/
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void timer_Tick(object sender, EventArgs e)
{
lblTime.Text = sw.ElapsedTime;
}
}
我敢肯定,我失去了一些东西或做一些愚蠢的事,但我所有的谷歌赋还没有导致我的答案。提前致谢。
当你说标签没有改变,它有没有值?还是它有一个初始值,但价值没有得到更新? –
我将标签的文本属性设置为00:00:00 –