我正在编写一个组合框自定义控件,无法使用Format()
函数。编辑器将格式行标记为错误。
Public Class TestCombo
Inherits ComboBox
Protected Overrides Sub OnDrawItem(ByVal e As DrawItemEventArgs)
Dim MyStr = Format(5459.4, "##,##0.00") ' The error is here.
End Sub
End Class
经过一点探索,我发现Combobox使用ListControl作为事件。如何告诉编辑器处理函数而不是事件?
正如您所注意到的,ComboBox类有一个名为Format
的事件(它继承自ListControl
(。因此,当您尝试在ComboBox
中调用Format()
函数时,编译器会认为您正在尝试使用该事件,因为它的范围最窄,因此会出现错误。
为了避免这种情况,您可以显式地调用声明Format()
函数的模块名称(即Strings
(:
Dim MyStr = Strings.Format(5459.4, "##,##0.00")
或者,您可以使用String.Format()
或ToString()
(这是.NET中的标准方式(:
Dim MyStr2 = String.Format("{0:##,##0.00}", 5459.4)
Dim MyStr3 = 5459.4.ToString("##,##0.00")