为什么消息框显示消息两次?

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 = "";
                // ...

如果tStartTimetEndTime是对话框窗口的一部分,您可以调用CheckIfTimesExistOnFormClosing - 请参阅CancelEventArgs.Cancel 属性说明中的示例。

健康)状况

如果两个文本框都为空或两者内部具有相同的值。

可以简化 - 如果两个文本框都为空,则 Text 属性将相等:

    if (tStartTime.Text != tEndTime.Text)


以上是为什么消息框显示消息两次?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>