以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  关于窗口控件闪烁问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=69647)

--  作者:168wjm
--  发布时间:2015/6/8 17:14:00
--  关于窗口控件闪烁问题

我制作了个窗口,里面的多个文本框控件绑定到了表A的数据,现在我在项目属性-(Initialize)事件里对表A的(日期)加载了个降序代码,我在表A的属性-(增加行)里加入了自动输入时间代码,在表A属性-(数据-DataColChanged)里又加载了个对表A(日期)的降序, 使表A的数据最新的显示在最上面。

 现我在窗口里按增加行按钮,控件里面,就会闪烁,我按照说明帮助里的“解决屏幕闪烁的终极方法”更改如下(是在DataColChanged事件里修改),没有效果,不知道是哪里出了问题,或者老师们能给我个好的方案解决我的问题,谢谢!!!!!!!

 

Forms("窗口").StopRedraw() \'停止绘制窗口
DataTables
("表A").StopRedraw()
Tables("表A").Sort = "日期 DESC"

DataTables("表A").ResumeRedraw()
Forms("窗口").ReseumeRedraw() \'停止绘制窗口

 

 

 

 


--  作者:大红袍
--  发布时间:2015/6/8 17:16:00
--  
 例子发上来看看。
--  作者:Bin
--  发布时间:2015/6/8 17:16:00
--  
上个例子看看
--  作者:168wjm
--  发布时间:2015/6/8 17:56:00
--  
怎样发例子,是这个项目发上来吗
[此贴子已经被作者于2015/6/8 17:57:32编辑过]

--  作者:大红袍
--  发布时间:2015/6/8 17:57:00
--  

 上传具体的项目,或简单的例子

 

http://foxtable.com/bbs/dispbbs.asp?boardid=2&Id=78

 


--  作者:168wjm
--  发布时间:2015/6/8 18:01:00
--  
我的项目用的外部数据库,局域网的那种,这个怎么办
[此贴子已经被作者于2015/6/8 18:04:12编辑过]

--  作者:大红袍
--  发布时间:2015/6/8 18:10:00
--  
 那你单独做一个类似的,会出错的例子发上来看看。
--  作者:168wjm
--  发布时间:2015/6/8 19:29:00
--  
先更正一下错误,我的表不在窗口里的,我使用的例子是这个,上面那个复制错了,不好意思,现在我上传我的例子,各位老师帮我看看,问题出在哪里,谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.zip

LockBaseMainForm() \'锁定主界面
DataTables
("订单").StopRedraw()
DataTables
("订单").RemoveFor("日期 = #" & Date.Today & "#")
DataTables
("订单").AppendLoad("日期 = #" & Date.Today & "#")
DataTables
("订单").ResumeRedraw()
UnLockBaseMainForm
() \'解锁主界面

[此贴子已经被作者于2015/6/8 19:30:05编辑过]

--  作者:大红袍
--  发布时间:2015/6/8 19:49:00
--  

If e.DataCol.Name = "修好日期" Then \'如果更改的修好日期
    If e.DataRow.IsNull("修好日期") Then \'修好日期是否为空
        e.DataRow("是否修好") = False \'如果为空,则否
    Else \'否则
        e.DataRow("是否修好") = True \' 则是
    End If
ElseIf e.DataCol.Name = "取走日期" Then \'如果更改的取走日期
    If e.DataRow.IsNull("取走日期") Then \'修好日期是否为空
        e.DataRow("以取走") = False \'如果为空,则否
    Else \'否则
        e.DataRow("以取走") = True \' 则是
    End If
ElseIf e.DataCol.Name = "送修日期" Then
    \'LockBaseMainForm() \'锁定主界面
    If Forms("维修登记单").Opened Then
        Dim dic As new Dictionary(Of String, String)
        For Each c As WinForm.Control In Forms("维修登记单").Controls
            If c.BindingField > "" Then
                dic.Add(c.Name, c.BindingField)
                c.BindingField = ""
            End If
        Next
        Forms("维修登记单").StopRedraw
     \'   DataTables("维修单").StopRedraw()
        Tables("维修单").Sort = "送修日期 DESC"
     \'   DataTables("维修单").ResumeRedraw()
        For Each key As String In dic.Keys
            Forms("维修登记单").Controls(key).BindingField = dic(key)
        Next
        Forms("维修登记单").ResumeRedraw
    End If
    \'UnLockBaseMainForm() \'解锁主界面
End If


--  作者:168wjm
--  发布时间:2015/6/8 20:21:00
--  
好像不行,这个新增的行,没有移到最上面,就是没有降序。