継承したコントロールのメソッド内で"Format"関数を使用できないようです。
対象製品
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
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