Foxtable(狐表)用户栏目专家坐堂 → 如何解决先删除动态增加的控件,后增加控件不出现闪动?


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

主题:如何解决先删除动态增加的控件,后增加控件不出现闪动?

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


加好友 发短信
等级:狐精 帖子:3313 积分:23146 威望:0 精华:1 注册:2009/3/31 11:25:00
如何解决先删除动态增加的控件,后增加控件不出现闪动?  发帖心情 Post By:2009/11/6 0:06:00 [只看该作者]

请各位帮忙!先是动态加载了一组含图片的单选框,再删除所有单选框,再增加一组单选框,其中会出现闪动,如何解决?
另外如何用代码判断此窗口共有几个单选框?(单选框动态加载时都含“single"+数字的组合命名的),谢谢各位帮忙!


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


加好友 发短信
等级:七尾狐 帖子:1695 积分:10725 威望:0 精华:0 注册:2009/10/25 16:45:00
  发帖心情 Post By:2009/11/6 0:22:00 [只看该作者]

压缩图片,否则恐怕要买台高配置的电脑吧。

 回到顶部
帅哥,在线噢!
程兴刚
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2009/11/6 0:28:00 [只看该作者]

现动态将控件属性设置为隐藏,再删除控件试试!

 回到顶部
帅哥哟,离线,有人找我吗?
e-png
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1695 积分:10725 威望:0 精华:0 注册:2009/10/25 16:45:00
  发帖心情 Post By:2009/11/6 0:32:00 [只看该作者]

用专用看图软件打开大点的图片也会有拖延的现象。 这和硬件也有一定的关系的。

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33957 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/11/6 0:39:00 [只看该作者]

增删控件前用StopRedraw停止绘制窗口,操作结束后用ResumeRedraw重绘窗口。


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


加好友 发短信
等级:狐精 帖子:3313 积分:23146 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2009/11/6 0:50:00 [只看该作者]

我试试,谢谢两位!


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


加好友 发短信
等级:狐精 帖子:3313 积分:23146 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2009/11/6 0:54:00 [只看该作者]

以下是引用czy在2009-11-6 0:39:00的发言:

增删控件前用StopRedraw停止绘制窗口,操作结束后用ResumeRedraw重绘窗口。

在什么事件中使用,另外请教 另外如何用代码判断此窗口共有几个单选框?(单选框动态加载时都含“single"+数字的组合命名的),


 回到顶部
帅哥,在线噢!
程兴刚
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2009/11/6 2:07:00 [只看该作者]

这是避免重复添加,在添加前先删除控件,避免报错的两段示例代码,或许对您有帮助:

方法一:

Dim Multi As String = "A|B|C|D|E|F|G|H|I|JD1|JD2"
Dim Values() as String
Values = Multi.split("|")
For Index As Integer = 0 To Values.Length - 1
    if e.Form.ExistControl(Values(Index))  = true
       e.Form.RemoveControl(Values(Index))
    end if
Next


方法二:

For Index As Integer = 1 To 25
    if e.Form.ExistControl("Painter" & Index) = true
        e.Form.RemoveControl("Painter" & Index)
    end if
Next

        注:方法二需要控件名称有一定的规律性,但方便很多!


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


加好友 发短信
等级:狐精 帖子:3313 积分:23146 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2009/11/6 8:22:00 [只看该作者]

OK!谢两位版主了

 回到顶部
帅哥哟,离线,有人找我吗?
菜鸟foxtable
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
  发帖心情 Post By:2009/11/6 8:49:00 [只看该作者]

以下是引用程兴刚在2009-11-6 2:07:00的发言:

这是避免重复添加,在添加前先删除控件,避免报错的两段示例代码,或许对您有帮助:

方法一:

Dim Multi As String = "A|B|C|D|E|F|G|H|I|JD1|JD2"
Dim Values() as String
Values = Multi.split("|")
For Index As Integer = 0 To Values.Length - 1
    if e.Form.ExistControl(Values(Index))  = true
       e.Form.RemoveControl(Values(Index))
    end if
Next


方法二:

For Index As Integer = 1 To 25
    if e.Form.ExistControl("Painter" & Index) = true
        e.Form.RemoveControl("Painter" & Index)
    end if
Next

        注:方法二需要控件名称有一定的规律性,但方便很多!

收藏


 回到顶部