苏州三木软件科技有限公司

 找回密码
 立即注册
搜索
热搜: 活动
查看: 1039|回复: 5

菜单按钮点击后修改控件报错

[复制链接]

71

主题

118

帖子

440

积分

中级会员

Rank: 3Rank: 3

积分
440
发表于 2025-6-9 11:02:12 | 显示全部楼层 |阅读模式



菜单按钮点击后运行下面的代码


              Public Sub 允许编辑
                        For Each ctrl As Control In Me.SmForm.ControlDictionary().Values
                                Dim        box As BoxDropDownBox=CType(ctrl,BoxDropDownBox)
                       
                                box.BackColor = Color.FromArgb(239, 239, 239)
                        Next
                End Sub



报错


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

106

主题

494

帖子

3029

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3029
QQ
发表于 2025-6-9 11:10:50 | 显示全部楼层
Dim        box As BoxDropDownBox=CType(ctrl,BoxDropDownBox)
这个返回对象有可能是返回空值的,你处理之前得先判断一下,另外Box开头的控件是一个组合控件,想引用右边的控件得使用BoxDropDownBox的BaseControl属性,具体可以参考:
http://www.sanmugrid.com/help/in ... %8E%A7%E4%BB%B6.htm

  1. Public Sub 允许编辑
  2.         For Each ctrl As Control In Me.SmForm.ControlDictionary().Values
  3.                 Dim box As BoxDropDownBox=CType(ctrl,BoxDropDownBox)
  4.                 If box IsNot Nothing Then
  5.                         box.BaseControl.BackColor= Color.FromArgb(239, 239, 239)
  6.                 End If
  7.         Next
  8. End Sub
复制代码


回复

使用道具 举报

71

主题

118

帖子

440

积分

中级会员

Rank: 3Rank: 3

积分
440
 楼主| 发表于 2025-6-9 11:25:58 | 显示全部楼层
还是报错代码改为下面就正确了
Public Sub 允许编辑
                        For Each ctrl As Control In Me.SmForm.ControlDictionary().Values                               
                                If TypeOf ctrl Is BoxDropDownBox Then
                                        Dim box As BoxDropDownBox = DirectCast(ctrl, BoxDropDownBox)
                                        box.BaseControl.BackColor = Color.FromArgb(239, 239, 239)
                                End If
                               
                        Next
                End Sub
回复

使用道具 举报

71

主题

118

帖子

440

积分

中级会员

Rank: 3Rank: 3

积分
440
 楼主| 发表于 2025-6-9 11:39:18 | 显示全部楼层
当控件用户背景颜色设置为Silver时候, 代码修改只是暂时的,鼠标进入控件,离开后又变回Silver了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

71

主题

118

帖子

440

积分

中级会员

Rank: 3Rank: 3

积分
440
 楼主| 发表于 2025-6-9 12:15:17 | 显示全部楼层
  box.BaseControl.BackColor    不是修改用户背景颜色 我想要修改用户背景颜色

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

106

主题

494

帖子

3029

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3029
QQ
发表于 2025-6-9 13:54:14 | 显示全部楼层
box.UserBackColor
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|苏州三木软件科技有限公司 ( 苏ICP备2022038390号 )

苏公网安备 32058502010732号

GMT+8, 2025-7-1 19:30 , Processed in 0.097926 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表