以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]老师帮看下,错在哪?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=50016)

--  作者:花开的声音
--  发布时间:2014/4/27 23:08:00
--  [求助]老师帮看下,错在哪?
在用窗口中的几个文本框的值给窗口中的表A的各列赋值时(窗口中文本框的名字与表中的列名一致),提示以下图示错误,看这代码没什么问题,帮看下问题出在哪里?

Dim t As Table = Tables("表A")
For Each ctl As WinForm.Control In e.Form.Controls
    If t.Cols.Contains(ctl.Name) Then
        t.Current(ctl.Name) = e.Form.Controls(ctl.Name).Value
    End If
Next

图片点击可在新窗口打开查看此主题相关图片如下:qqq.jpg
图片点击可在新窗口打开查看



--  作者:有点甜
--  发布时间:2014/4/27 23:12:00
--  

 你窗口有一个panel控件,但是panel控件式没有value属性的。

 

 你用msgbox调试一下就知道怎么回事了。


--  作者:花开的声音
--  发布时间:2014/4/27 23:16:00
--  
窗口中有一个分区面板,但怎么用代码来把这个面板排除掉?
--  作者:花开的声音
--  发布时间:2014/4/27 23:19:00
--  
Dim t As Table = Tables("基层法律服务机构信息表")
For Each ctl As WinForm.Control In e.Form.Controls
    If ctl.Name <> SplitContainer1 Then
    If t.Cols.Contains(ctl.Name) Then
        t.Current(ctl.Name) = e.Form.Controls(ctl.Name).value
    End If
   End If
Next

这样写还是提示错误

--  作者:花开的声音
--  发布时间:2014/4/27 23:30:00
--  
还有一个导航栏,这个影响不,要不要排除,怎么排除?
--  作者:逛逛
--  发布时间:2014/4/28 7:56:00
--  

看你的布局,你可以将这些要赋值的控件放在一个Panel 里,用Panel 的 children 属性去遍历


--  作者:lsy
--  发布时间:2014/4/28 8:10:00
--  
Dim t As Table = e.Form.Controls("基层法律服务机构信息表").Table
For Each c As Col In t.Cols
    For Each ctl As WinForm.Control In e.Form.Controls
        If ctl.Name.Contains(c.Name) Then
            Select ctl.Gettype.Name
                Case "CheckBox","RadioButton"
                    t.Current(c.Name) = e.Form.Controls(ctl.Name).Checked
                Case Else
                    t.Current(c.Name) = e.Form.Controls(ctl.Name).Value
            End Select
        End If
    Next
Next
e.Form.Controls("基层法律服务机构信息表").Table.DataTable.Save

--  作者:有点甜
--  发布时间:2014/4/28 9:14:00
--  
以下是引用花开的声音在2014-4-27 23:30:00的发言:
还有一个导航栏,这个影响不,要不要排除,怎么排除?

 

如果想排除的话可以这样。关键代码

 

Dim t As Table = Tables("表A")
For Each ctl As WinForm.Control In e.Form.Controls
    If t.Cols.Contains(ctl.Name) Then
        msgbox(ctl.Gettype.Name)
        t.Current(ctl.Name) = e.Form.Controls(ctl.Name).Value
    End If
Next

 


--  作者:lsy
--  发布时间:2014/4/28 9:15:00
--  
不用排除的。