不管是vb还是c# 文本框TextBox2.Text一定是字符串,所以不管你使用gettype,typeof,is 获取的类型都是String,不可能是数值型的。你可以是用强制转换来判断,能转换为decimal的,继续,不能转换的,就捕获错误,然后弹出错误框。
目前创新互联公司已为上千家的企业提供了网站建设、域名、网页空间、网站运营、企业网站设计、揭东网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
try{
testClass.Chinese = Convert.ToDecimal(TextBox2.Text)
}
catch{//弹出错误框}
如果是要判断引用类型可以用TypeOf来判断
Dim s = "666"
If TypeOf (s) Is String Then
Debug.Print("string")
Else
Debug.Print("not string")
End If
如果不知道是否是引用类型,可以这样判断:
Dim s = 666
If VarType(s) = VariantType.String Then
Debug.Print("string")
Else
Debug.Print("not string")
End If
或者:
Dim s = 666
If s.GetType = "".GetType Then
Debug.Print("string")
Else
Debug.Print("not string")
End If
这个问题可以用注册表解决。
Function getOpenCommand(fileExt As String) as String
Dim fileType as String, openCommand as String
fileExt = "." + fileExt
'取得文件扩展名在注册表里的文件类型名称
'比如.zip的类型名称一般是zipfile
fileType = 读取注册表的classes_root下的子键(fileExt)的默认键值
'取得打开这种文件的程序
openCommand = 读取注册表的classes_root下的子键(fileType + "\shell\open\command")的默认键值
Return getOpenCommand
End Function
读取注册表的HKEY_CLASSES_ROOT下的子键的默认键值的方法可以在网上搜索到。
这样getOpenCommand("doc")就可以得到一个字符串(包括引号):
"C:\Program Files\Word\word.exe" "%1"
这里只需要用Spilt函数把C:\Program Files\Word\word.exe分离出来就好了