継承したコントロールのメソッド内で"Format"関数を使用できないようです。

文書番号 : 16605     文書種別 : 使用方法     最終更新日 : 2005/01/29
文書を印刷する
対象製品
InputMan for .NET 3.0J
詳細
以下のようにFormat関数を使用しているのですが、正しく動作しません。

Public Class DateEx
  Inherits GrapeCity.Win.InputMan.Date

  Public Sub New()
    MyBase.New()
  End Sub

  Function SetDate(ByVal DateString As String) As Boolean
    Dim strDate As String

    Try
      strDate = Format(DateValue(DateString), "yyyymmdd") & "000000"
      Me.Number = CLng(strDate)

    Catch
      Me.Clear()
      Return False
    End Try

    Return True
  End Function
End Class

この現象は、クラスを継承することにより、InputManから提供されて
いる、DateFormatクラスとの判別がつかず、コンパイラが正しく処理
できないことが原因です。

下記のような方法でご利用ください。

【サンプルコード】
Public Class DateEx
  Inherits GrapeCity.Win.InputMan.Date

  Public Sub New()
    MyBase.New()
  End Sub

  Function SetDate(ByVal DateString As String) As Boolean
    Dim strDate As String
    Dim dt As New DateTime()
    dt = CDate(DateString)

    Try

      ''strDate = Format(DateValue(DateString), "yyyymmdd") & "000000"
      strDate = dt.ToString("yyyyMMdd", System.Globalization.DateTimeFormatInfo.InvariantInfo) & "000000"
      Me.Number = CLng(strDate)

    Catch
      Me.Clear()
      Return False
    End Try

    Return True
  End Function
End Class
キーワード
HowTo

この文書は、以前は次のFAQ IDで公開されていました : 6502