Foxtable(狐表)用户栏目专家坐堂 → 关于数据类型的困惑


  共有4035人关注过本帖树形打印复制链接

主题:关于数据类型的困惑

帅哥哟,离线,有人找我吗?
东坡一剑
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:366 积分:2478 威望:0 精华:0 注册:2013/1/13 23:43:00
关于数据类型的困惑  发帖心情 Post By:2013/10/20 0:01:00 [只看该作者]

Dim x As Integer = CInt(e.Form.Controls("矩形起点X").Value)
Dim y As Integer = CInt(e.Form.Controls("矩形起点Y").Value)
Dim jk As Integer = CInt(e.Form.Controls("矩形宽").Value)
Dim jg As Integer = CInt(e.Form.Controls("矩形高").Value)
Dim p As WinForm.Painter = e.Form.Controls("Painter1")
Dim g As Graphics = p.Graphics
Dim ys As Color = e.Form.Controls("颜色").Color
Dim pn As New Pen(ys, e.Form.Controls("线宽").value)
Dim ds = CInt(e.Form.Controls("线型").value)   'e.Form.Controls("线型").value
pn.DashStyle =ds  'DashStyle.DashDotDot(此为复制控件Controls("线型")中显示的值)
g.DrawRectangle(pn,x,y,jk,jg)
p.Repaint()

 

上面一段代码,红色代码部分会报错:

 

从字符串“DashStyle.DashDotDot”到类型“Integer" 转换无效

 

但是将其中的ds更换为后面注释的DashStyle.DashDotDot后却不会报错,而这个字符串正是刚才报错时控件中输入的字符串!

而将蓝字部分更换为它后面注释掉的代码仍会报错。

百思不得其解,求教!


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/10/20 21:28:00 [只看该作者]

 不理解你的意思。你自己msgbox两个值来看看。

 msgbox(DashStyle.DashDotDot & " " & e.Form.Controls("线型").value)

 回到顶部
帅哥哟,离线,有人找我吗?
东坡一剑
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:366 积分:2478 威望:0 精华:0 注册:2013/1/13 23:43:00
  发帖心情 Post By:2013/10/20 22:16:00 [只看该作者]

感谢点拨!

枚举的值都是整数,只要将e.Form.Controls("线型").value的值设为整数应该就可以了!控件的Value只有string,因此控件中的DashStyle.DashDotDot和代码中的DashStyle.DashDotDot虽然看起来一样,但是值却有天壤之别。

再次感谢!


 回到顶部