3

Visual Basic プロジェクトで問題が発生しています。

アメリカで新しいテレビシリーズが放送された場合に表示される番組を作成しています/ダウンロード可能 (翌日)

(US と Torrent はスウェーデン語で日)

ここに画像の説明を入力

それで私はそれをしましたが、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

したがって、ラベルに「月曜日」と表示されている場合は、月曜日を選択すると表示されます。月曜日にどのシリーズが利用可能かを表示します。これはうまくいかず、その理由がわかりません。

これを機能させる方法と、何が間違っているのか、誰かが説明してくれますか?

4

2 に答える 2

1

DayOfWeek文字列ではなく列挙に基づいて比較する必要があります

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

また、クリスが回答ですでに述べたようにValueChanged、ユーザーが日付を選択したかどうかも確認します。DateTimePicker

于 2013-01-03T19:18:09.667 に答える
0

datepicker1これは、または の変更をリッスンするように何も指示していないためですlabel4datepickerが(毎回)変更されたときに内部のコードが起動し、コンテンツが変更されるようにします。サブ内のいくつかの変数を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
于 2013-01-03T19:02:39.310 に答える