为什么消息框显示消息两次?
c#
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;
}
主要思想是在两种情况下显示一条消息:如果两个文本框都为空或两者内部具有相同的值。问题是它连续两次显示相同的消息。
回答
您CheckIfTimesExist每次调用Text 属性 in tStartTimeortEndTime更改和内部CheckIfTimesExist更改 Text 属性:
// ...
tStartTime.Text = "";
tEndTime.Text = "";
// ...
如果tStartTime和tEndTime是对话框窗口的一部分,您可以调用CheckIfTimesExistOnFormClosing - 请参阅CancelEventArgs.Cancel 属性说明中的示例。
健康)状况
如果两个文本框都为空或两者内部具有相同的值。
可以简化 - 如果两个文本框都为空,则 Text 属性将相等:
if (tStartTime.Text != tEndTime.Text)