private void tStartTime_TextChanged(object sender, EventArgs e)
{
if(CheckIfTimesExist())
{
bPlayPart.Enabled = true;
}
else
{
bPlayPart.Enabled = false;
}
}
private void tEndTime_TextChanged(object sender, EventArgs e)
{
if (CheckIfTimesExist())
{
bPlayPart.Enabled = true;
}
else
{
bPlayPart.Enabled = false;
}
}
private bool CheckIfTimesExist()
{
bool timesExit;
if (tStartTime.Text != "" && tEndTime.Text != "" && tStartTime.Text != tEndTime.Text)
{
timesExit = true;
}
else
{
tStartTime.Text = "";
tEndTime.Text = "";
MessageBox.Show("Start time and End time cannot be the same.");
timesExit = false;
}
return timesExit;
}
主要思想是在两种情况下显示一条消息:如果两个文本框都为空或两者内部具有相同的值。问题是它连续两次显示相同的消息。
答案 0 :(得分:6)
每次 CheckIfTimesExist
或 tStartTime
中的 Text 属性发生更改时,您都会调用 tEndTime
,并且在 CheckIfTimesExist
内部更改 Text 属性:
// ...
tStartTime.Text = "";
tEndTime.Text = "";
// ...
如果 tStartTime
和 tEndTime
是对话窗口的一部分,您可以在 OnFormClosing 中调用 CheckIfTimesExist
- 请参阅 CancelEventArgs.Cancel Property 说明中的示例。
条件
<块引用>如果两个文本框都是空的,或者里面的值相同。
可以简化 - 如果两个文本框都为空,则 Text 属性将相等:
if (tStartTime.Text != tEndTime.Text)