2013-01-03 129 views
3

我在使用Visual Basic项目时遇到了一些问题。DateTimePicker选择日期

林做节目,如果有出来在美国/任何新的电视连续剧可以下载(次日)

(美国和洪流是天瑞典语)

enter image description here

这desplays

所以我已经这样做了,但我想添加一个DateTimePicker,所以我可以选择一天,然后检查可用性。嗯,我注意到的DateTimePicker总是开始于当前的日期,所以我刚才添加它像这样:

Dim DateTimePickerDay = Me.DateTimePicker1.Value.DayOfWeek.ToString() 

Dim USstatus = "Tomorrow" 
Dim DownloadStatus = "Today" 

If DateTimePickerDay = "Monday" Then 
    StatusLabel1.Text = USstatus 
    StatusLabel1.ForeColor = Color.Blue 
    StatusLabel5.Text = DownloadStatus 
    StatusLabel5.ForeColor = Color.Green 
    StatusLabel6.Text = DownloadStatus 
    StatusLabel6.ForeColor = Color.Green 
End If 

但现在我希望能够使用的DateTimePicker改变一天,看到什么可用的那一天。所以,我试图改变一个勒贝尔的日子,像这样:

Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click 
    Me.Label4.Text = Me.DateTimePicker1.Value.DayOfWeek.ToString() 
End Sub 

然后:

If Me.Label4.Text = "Monday" Then 
    StatusLabel1.Text = USstatus 
    StatusLabel1.ForeColor = Color.Blue 
    StatusLabel5.Text = DownloadStatus 
    StatusLabel5.ForeColor = Color.Green 
    StatusLabel6.Text = DownloadStatus 
    StatusLabel6.ForeColor = Color.Green 
End If 

所以,当标签上写着“星期一”,如果我选择星期一它一样。它将显示星期一哪些系列可用。那么这不起作用,我不明白为什么。

任何人都可以解释我怎么能得到这个工作,我做错了什么?

+1

我不确定是否清楚“不工作”部分的含义。如果用户更改日期,会发生什么?也许发布你的dtp的ValueChanged事件代码。 – LarsTech

+0

我注意到日期选择器中的语言不是英语。也许这是造成问题?你也试过把'If Me.Label4.Text ='星期一'然后'放在标签的onchange中吗?也许'if'语句永远不会被触发,因为它永远不会被调用?考虑一下 - 我很肯定你的问题是'if'语句运行onload,而不是再次 – Chris

+0

“如果用户更改日期,会发生什么?” 然后就像今天一样“行动”就是你刚刚改变的那一天。所以你可以告诉周一是否有任何系列。 – David

回答

0

这是因为您还没有告诉任何事情要听取datepicker1label4中的更改。我会这样做,当datepicker已更改(每次)里面的代码将触发,更改内容。您需要将ContentChanger子中的一些变量公开或设置为其他地方,否则他们将无法访问。

尝试类似如下:

Private Sub DateTimePicker1_ValueChanged(sender As Object, e As EventArgs) Handles DateTimePicker1.ValueChanged 
    ' When the datepicker1 has changed (date has been chosen).. do something with that date 
    ' Get the datepicker's chosen day name 
    Dim dayOfWeek As String = DateTimePicker1.Value.DayOfWeek.ToString() 

    ' Update the label to show the user 
    Label4.Text = dayOfWeek 

    ' Now change the content shown according to the date range 
    ContentChanger(dayOfWeek) 

End Sub 


Sub ContentChanger(dayOfWeek As String) 

    If dayOfWeek = "Monday" Then 
     StatusLabel1.Text = USstatus 
     StatusLabel1.ForeColor = Color.Blue 
     StatusLabel5.Text = DownloadStatus 
     StatusLabel5.ForeColor = Color.Green 
     StatusLabel6.Text = DownloadStatus 
     StatusLabel6.ForeColor = Color.Green 
    End If 

End Sub 
1

你应该立足于DayOfWeek枚举而不是字符串比较,如果用户在ValueChanged事件选择日期

If Me.DateTimePicker1.Value.DayOfWeek = DayOfWeek.Monday Then 
    ... 
End If 

,并检查DateTimePicker的克里斯已经在他的回答中提到。

相关问题