本日もまたハマってしまったシリーズです。
環境は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 件のコメント:
コメントを投稿