在vb.net中的掩码文本框中将空白日或月或年替换为当前日或月或年

时间:2013-05-20 18:57:15

标签: vb.net date

我有一个蒙面文本框。

当用户输入输入并按Tab键时。我想检查一下他是否输入了有效日期?

我可以通过IsDate函数来检查。

如果它无效,那么该日期的哪一部分无效?

我无法得到这个。我的意思是我不知道怎么做到这一点。

如果我的上述问题得到解答,那么我想问用户他的日期,月份或年份是无效的。您想用当前日期或当前月份或当前年份替换它吗?

或者即使用户将年份保持为空白,我也希望将当前年份替换为空白。 或与月份相同。

2 个答案:

答案 0 :(得分:1)

您在这里有几个不同的问题,并不是非常清楚您真正想要的是什么,但要回答关于获取当前日/月/年的问题,请查看DateTime.Now

DateTime.Now.Day gets you the current day

DateTime.Now.Month gets you the current month

DateTime.Now.Year gets you the current year

答案 1 :(得分:0)

以下是我的问题的答案。

Private Sub mskdTxtBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles mskdTxtBox1.Validating

        'Check If Day is entered.
        If mskdTxtBox1.Text.Substring(0, 2).Trim <> "" Then

            'Check if Month is entered.
            If mskdTxtBox1.Text.Substring(3, 2).Trim <> "" Then

                'Check if year is not entered.
                If mskdTxtBox1.Text.Length = 6 Then

                    'Check if Date and month entered are valid.
                    If IsDate(mskdTxtBox1.Text & Now.Year) Then
                        mskdTxtBox1.Text = mskdTxtBox1.Text & Now.Year
                    End If

                End If

            Else

                'Check if Date entered will be valid for the current date that we want to create?
                If IsDate(mskdTxtBox1.Text.Substring(0, 2).Trim & "-" & Now.Month & "-" & Now.Year) Then

                    'Check if month is two digit?
                    If Now.Month.ToString.Length < 2 Then
                        mskdTxtBox1.Text = mskdTxtBox1.Text.Substring(0, 2).Trim & "-0" & Now.Month & "-" & Now.Year
                    Else
                        mskdTxtBox1.Text = mskdTxtBox1.Text.Substring(0, 2).Trim & "-" & Now.Month & "-" & Now.Year
                    End If

                End If

            End If

        Else

            Dim TodaysDay As String = Now.Day
            Dim TodaysMonth As String = Now.Month

            'Check if Current day is two digit?
            If Now.Day < 10 Then
                TodaysDay = "0" & Now.Day
            End If

            'Check if Current Month is two digit?
            If Now.Month < 10 Then
                TodaysMonth = "0" & Now.Month
            End If

            mskdTxtBox1.Text = TodaysDay & "-" & TodaysMonth & "-" & Now.Year

        End If

End Sub