2013-01-03 130 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的克里斯已經在他的回答中提到。

相關問題