本日もまたハマってしまったシリーズです。
環境はVB.NET NULLを許容するDataTimePickerを参考に、未入力が可能な日付コントロールを作成しているのですが、
未入力時の初期値が何故か"2012/2/8"になっている事象が発覚
しかし初期値をもつプロパティを用意していて、Enter時に_isnullならMyBase.Valueを置き換えるようにしているのにも関わらず、まったく置き換わらない。なぜだ。
ソリューションの.Designer.vbファイルを見てみると・・・
Me.cdtp_DateOpen.DefVal = New Date(2012, 2, 8, 0, 0, 0, 0)これか・・・
作戦1。
Public Property DefVal As Date = DateTime.Todayダメ・・・
作戦2
Public Sub New() ' この呼び出しはデザイナーで必要です。 InitializeComponent() ' InitializeComponent() 呼び出しの後で初期化を追加します。 Me.DefVal = DateTime.Today '<-これ AddHandler Me.Enter, AddressOf setDefaultValue End Subまたダメ・・・くそう
作戦3
Protected Overrides Sub InitLayout() MyBase.InitLayout() Me.DefVal = DateTime.Today '<-これ End Subダメ・・・なんでー!
ここで、プロパティのDefaultValueAttributeを思い出す。 ・
・
・
・
・

…orz
長くなったので結果からいくとコレでいけました
<categoryattribute("data")> _ <defaultvalue("")> _ Public Property DefVal As Date
日付型にキャストできないから当日日付になった・・・?
また!
0 件のコメント:
コメントを投稿