|
分類:[.NET 全般]
コンボボックスを用いて、年 月 日を選択し、それぞれをtext型で保持 それらを結合してDATE型に変換 という処理を行いたく、コードを書きました。 また、コンボボックスの値を変更すると、その日付から曜日を取得できるようにしました。 その結果、そのフォームへ移動すると、エラーが出力されるようになりました。 最初はエラーの出力されるif文を記述していなかったのですが、1月31日など、ありえない日を選択した時にエラーが出力されるのを防ぐための処理を施そうとした結果、こうなってしまいました。 どうしても改善できなかったため、質問させていただきます。 お手数をおかけいたしますが、アドバイスよろしくお願いいたします。
[エラー内容] String "" から型 'Double' への変換は無効です。 自動変数を確認すると、day_Combo.textが""になっている。 しかし、フォームのロード時に代入しているハズ…
[コード] Private Sub new_induct_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load '初期化 '年コンボボックスをセット Dim i As Integer For i = 1990 To 2100 year_Combo.Items.Add(i) Next '日コンボボックスをセット Dim j As Integer For j = 1 To 31 day_Combo.Items.Add(j) Next 'メニューで選択した日付をセット year_Combo.Text = calendar_yy month_Combo.Text = calendar_mm day_Combo.Text = calendar_dd
'Attentionラベルの初期化 date_Attention_Label.Text = "" name_Attention_Lable.Text = "" End Sub
Private Sub month_Combo_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles month_Combo.SelectedIndexChanged '月コンボをセット calendar_mm = month_Combo.Text ここでエラーが出力されます→ If (month_Combo.Text = 2 And day_Combo.Text = 30) Or (month_Combo.Text = 2 And day_Combo.Text = 31) _ Or (month_Combo.Text = 4 And day_Combo.Text = 31) Or (month_Combo.Text = 6 And day_Combo.Text = 31) _ Or (month_Combo.Text = 9 And day_Combo.Text = 31) Or (month_Combo.Text = 11 And day_Combo.Text = 31) Then date_Attention_Label.Text = "日付を確認してください" Else Dim DAY As String DAY = calendar_yy & "/" & calendar_mm & "/" & calendar_dd Dim youbi As String Dim uWeekday As DayOfWeek = CDate(DAY).DayOfWeek youbi = WeekdayName(Weekday(DAY)).Substring(0, 3) youbi_Label.Text = youbi End If End Sub
----- 見づらいコードで申し訳ありません。
|