ユーザーが「終了」日付 DateTinePicker コントロールの日付を変更したときに実行される以下のコードがあります。
Private Sub dtpEndDate_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dtpEndDate.ValueChanged
If dtpEndDate.Value.Date < dtpStartDate.Value.Date Then
MessageBox.Show("The end date should be after the start date", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
dtpEndDate.Value = Today
End If
End Sub
メッセージボックスが 2 回表示されるという点で、この手順は 2 回実行されているようです。
私は間違ったイベントを持っていますか、またはこれを管理するためのより良い方法はありますか?
提案されているように変数で編集してみました:
Private Sub dtpEndDate_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dtpEndDate.ValueChanged
If m_blndtpEndDateIsDone = False Then
If dtpEndDate.Value.Date < dtpStartDate.Value.Date Then
MessageBox.Show("The end date should be after the start date", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
m_blndtpEndDateIsDone = True
dtpEndDate.Value = Today
Else
m_blndtpEndDateIsDone = False
End If
Else
m_blndtpEndDateIsDone = False
End If
wnd sub
残念ながら、まだ2回発射されています...
終了日 dtpicker が変更され、日付が開始日より前になるたびに1回起動するようにします。
ありがとう
フィリップ