我有一个倒计时,它输出到主窗体上的标签,我想将主窗体的倒计时弹出到子窗体,因为子窗体将能够保持在所有其他窗口之上(对于游戏我无法更新儿童唱片的倒计时。当我点击弹出按钮时,我只得到第二个。
这是主要表格
private void tmrMain_Tick(object sender, EventArgs e)
{
TimerSeconds = TimerSeconds - 1;
if (TimerSeconds == 0)
{
tmrMain.Stop();
if (chbxPlaySound.Checked)
{
System.Media.SystemSounds.Exclamation.Play();
}
if (chbxRepeat.Checked)
{
btnStartTimer.PerformClick();
}
}
string dis_seconds = Convert.ToString(TimerSeconds);
//
// lblTimer is the label that shows the countdown seconds
//
lblTimer.Text = dis_seconds;
}
这是主表单上的弹出按钮
private void btnPopOut_Click(object sender, EventArgs e)
{
PopTimer ShowTimer = new PopTimer(TimerSeconds);
ShowTimer.Show(this);
}
这是我的孩子表格
public partial class PopTimer : Form
{
public PopTimer(int countTimer)
{
InitializeComponent();
//string dis_seconds = Convert.ToString(TimerSeconds);
lblPopTimer.Text = Convert.ToString(countTimer); ;
}
}
答案 0 :(得分:1)
您的PopTimer表单需要一个可访问的方法,如下所示:
public void SetCountdown(int value) {
lblPopTimer.Text = value.ToString();
}
然后您的PopTimer需要可访问,因此请移动声明:
private PopTimer showTimer = null;
private void btnPopOut_Click(object sender, EventArgs e)
{
showTimer = new PopTimer(timerSeconds);
showTimer.Show(this);
}
然后在你的tick事件中:
if (showTimer != null) {
showTimer.SetCountdown(timerSeconds);
}