2017-07-31 7 views
-1

フォームに2つのDateTimePickerコントロールがあります。vb.netで年を加算する

第1のDateTimePickerで選択した日付に自動的に年を追加し、第2のDateTimePickerに表示するにはどうすればよいですか?たとえば、日付09/22/2017を選択した場合、2番目のDateTimePicker09/22/2018と表示します。

これは可能ですか?もしそうなら、適切なコードを提案しますか?そうでない場合は、代替方法を提案しますか?

SomeComboBox.text = Now.Year

+0

[追加年](https://msdn.microsoft.com/en-us/library/system.datetime.addyears(v = vs.110).aspx)? – Pikoh

+0

ようこそ、悲しい:-) – InteXX

+0

...と沈黙downvotesの理由は、人ですか?それはまったく無礼です。 – InteXX

答えて

1

あなたはDateTimePickerValueChangedイベントを使用して、このようにそれを行うことができます。

Private Sub DateTimePicker1_ValueChanged(Sender As DateTimePicker, e As EventArgs) Handles DateTimePicker1.ValueChanged 
    Me.DateTimePicker2.Value = Sender.Value.AddYears(1) 
End Sub 

は自動的にこのイベントハンドラのコードを生成するには、フォーム上の最初のDateTimePickerコントロールをダブルクリックします。

この例では、SenderのキャストをObjectからDateTimePickerに変更しているため、IDEでIntelliSenseを取得できます。

+0

Whoah!出来た! :D大変ありがとう!入力が「09/22/2017」で、出力が「09/23/2018」の場合、もう1つ質問がありますか? – FrustratedProgrammer

+0

@FrustratedProgrammer - 私はあなたに従うか分からない。 'Date.Parse(" 09/22/2017 ")。AddYears(1) 'は常に' 9/22/2018'になります。あなたは '9/23/2018'があなたの望む結果だと言っていますか?その場合は、Date.Parse( "09/22/2017")を使用します。AddYears(1).AddDays(1) '。 – InteXX

+0

ああ!どうもありがとうございました!あなたは大きな助けになります! :)私はすでにそれを変更し、それは完璧に働いた! :) – FrustratedProgrammer

0

わかりません日付を選択し、日付ピッカーからその年を取ります。 下のテキストボックスに追加します。

このようにすることができます。

year = dtp1.Value.Year 
tb.Text = tb.text + year 

あなたはしかし、日付ピッカーを変更するとき、これはちょうどあなたがtb.Text年は日付ピッカーのすべてのクリックに交換することにしたいならば、あなたはこのような何かを行う必要があります年に追加されます。

Dim str as String = tb.Text  'Save current text 
Dim arr as String() = str.Split(",")'Get previous text 
currentYear = dtp1.Value.Year  'Get current year 
tb.Text = arr(0) + currentYear  'Replace year in textbox with new year 
+0

私が言っていることは、例えば "09/22/2017"のような特定の日付を入力すると、最初のdatetime pickerをクリックした後にそれを欲しいということです(私はそれをコンボボックスと呼んで申し訳ありません)。 "09/22/2018" – FrustratedProgrammer

0

あなたがいる場合:あなたがする必要があるとあなたが探しているものYEAR、単純な答えはまさに

enter image description here

+0

例えば、 "09/22/2017"のような特定の日付を入力すると、最初の日時をクリックした後にその日時を入力しますピッカー(以前はコンボボックスと呼んでいたことを申し訳ありません)、次の日付時刻ピッカーに自動的に表示されます.. "09/22/2018" – FrustratedProgrammer

+0

Public Class Form1 プライベートSub DateTimePicker1_ValueChanged(EventArgsとして送信者) )Handles DateTimePicker1.ValueChanged Label1.Text = DateTimePicker1.Value.Year + 1 DateTimePicker2.Value = Now.Day& " - "&Now.Month& " - "&Label1.Text End Sub 終了クラス –

+0

上記のコードをコピーしてvs ideで実行します。期待どおりに動作するはずです。最初のdtpの値を変更すると、次のdtpの年を変更します。 –