2016-11-01 3 views
1

という名前のテキストボックスへの戻り値 'authors'という名前のフォームには、2つのテキストフィールドがあり、両方とも入力として2つの異なる日付を取得しています。ユーザーがテキストボックスにフォーカスすると、他のフォームに配置したカレンダーが表示されます。日付を選択して選択ボタンをクリックすると、選択した日付がテキストボックスに割り当てられます。新しいフォームが

これは私が書いたコードです:

著者 - コーディング: - :今私が実行しようとすると問題が、ある

Private Sub B_SELECT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B_SELECT.Click 
    Authors.DOFE.Text = Format(MonthCalendar1.SelectionRange.Start(), "dd/MM/yyyy") 
    Me.Close() 
End Sub 

Private Sub MonthCalendar1_DateChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles MonthCalendar1.DateChanged 
    Authors.DOFE.Text = Format(MonthCalendar1.SelectionRange.Start(), "dd/MM/yyyy") 
End Sub 

コーディング

Private Sub DOFE_TextChanged(ByVal sender As System.Object, ByVal e As  System.EventArgs) Handles DOFE.GotFocus 
If DOFE.Text = "" Then 
     Calendar.ShowDialog() 
    Else 
     Me.DOFE.Select() 
     Me.DOFE.Focus() 
    End If 
End Sub 

カレンダー次のコード:

Private Sub DOB_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DOB.GotFocus 
    If DOB.Text = "" Then 
     Calendar.ShowDialog() 
    Else 
     Me.DOB.Select() 
     Me.DOB.Focus() 
    End If 
End Sub 

つまり、このコードは、同じフォームの他のテキストフィールドに他の日付を割り当てるためのコードです。

これは、単一のラインをカレンダ形式で

**Authors.DOB.Text** = Format(MonthCalendar1.SelectionRange.Start(), "dd/MM/yyyy") 

を追加することによって可能であるが、反射は両方のテキストフィールドに起こります。

この点について私にお勧めします。

+1

に私はあなたを理解し、非常にわからないんだけど問題。あなたはDateTimeの[ToString関数](https://msdn.microsoft.com/en-us/library/zdtaw1bw(v = vs.110).aspx)を見ることができます。 。 –

答えて

0

Public変数を使用して日付を保持し、ShowDialogメソッドの後に割り当てることが1つの方法です。

ので、いくつかのモジュールでは、あなたのカレンダーのコード

Private Sub B_SELECT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B_SELECT.Click 
    tempDate = Format(MonthCalendar1.SelectionRange.Start(), "dd/MM/yyyy") 
    Me.Close() 
End Sub 

Public tempDate As Date 

を持っているでしょう。そして、あなたのText_Changedイベント

Private Sub DOB_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DOB.GotFocus 
    If DOB.Text = "" Then 
     tempDate = "" 
     Calendar.ShowDialog() 
     DOB.Text = tempDate 
    Else 
     Me.DOB.Select() 
     Me.DOB.Focus() 
    End If 
End Sub 
+0

はい、動作します。ありがとうございました。しかし、あなたのコードの問題は、テキストボックスにいくつかのテキストを割り当てるまで、テキスト内のフォーカスは失われませんでした。 GotFocusイベントがあるからです。だから、私は、もしDOFE.Text = "" そしてTempDate = "" その後 Calendar.ShowDialog() DOFE.Text = TempDate TempDate = "" エルス Me.DOFE.Selectを() Me.DOFEのような変更を行いました.Focus() 終了の場合 –

+0

喜んで欲しいと思っています。私の答えを選択してください。ありがとうございました。 – topshot

関連する問題