以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何解决先删除动态增加的控件,后增加控件不出现闪动?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=4894)

--  作者:baoxyang
--  发布时间:2009/11/6 0:06:00
--  如何解决先删除动态增加的控件,后增加控件不出现闪动?

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


--  作者:e-png
--  发布时间:2009/11/6 0:22:00
--  
压缩图片,否则恐怕要买台高配置的电脑吧。
--  作者:程兴刚
--  发布时间:2009/11/6 0:28:00
--  
现动态将控件属性设置为隐藏,再删除控件试试!
--  作者:e-png
--  发布时间:2009/11/6 0:32:00
--  
用专用看图软件打开大点的图片也会有拖延的现象。 这和硬件也有一定的关系的。
--  作者:czy
--  发布时间:2009/11/6 0:39:00
--  

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


--  作者:baoxyang
--  发布时间:2009/11/6 0:50:00
--  

我试试,谢谢两位!


--  作者:baoxyang
--  发布时间:2009/11/6 0:54:00
--  
以下是引用czy在2009-11-6 0:39:00的发言:

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

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


--  作者:程兴刚
--  发布时间: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
--  发布时间:2009/11/6 8:22:00
--  
OK!谢两位版主了
--  作者:菜鸟foxtable
--  发布时间: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

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

收藏