以文本方式查看主题

-  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=66063)

--  作者:qingwuzu
--  发布时间:2015/3/28 21:27:00
--  [求助]控件使用问题
有没有方法可以在表不可编辑的状态下打开窗口后 ComboBox 控件和 TextBox 控件都将变成只读,不可编辑状态,在表编辑状态下打开窗口后ComboBox 控件和 TextBox 控件可以正常修改呢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:控件使用.rar

[此贴子已经被作者于2015/3/28 21:32:14编辑过]

--  作者:qingwuzu
--  发布时间:2015/3/29 0:54:00
--  
已找到方法,谢谢

e.form.Controls("TextBox1").ReadOnly = BooleanEnum.True
e.form.Controls("TextBox2").ReadOnly = BooleanEnum.True
e.form.Controls("TextBox3").ReadOnly = BooleanEnum.True
e.form.Controls("TextBox5").ReadOnly = BooleanEnum.True
e.form.Controls("TextBox6").ReadOnly = BooleanEnum.True
e.form.Controls("TextBox8").ReadOnly = BooleanEnum.True
e.form.Controls("TextBox9").ReadOnly = BooleanEnum.True
e.form.Controls("TextBox10").ReadOnly = BooleanEnum.True
e.form.Controls("TextBox11").ReadOnly = BooleanEnum.True
e.form.Controls("TextBox12").ReadOnly = BooleanEnum.True
e.form.Controls("TextBox13").ReadOnly = BooleanEnum.True
这个代码还可以简洁一点嘛

--  作者:有点甜
--  发布时间:2015/3/29 9:10:00
--  
For Each c As object In e.Form.Controls
    If c.Gettype.name Like "*TextBox*" OrElse c.Gettype.Name Like "*ComboBox*" Then
        c.Readonly = BooleanEnum.True
    End If
Next

--  作者:wuzuqing
--  发布时间:2015/3/29 10:08:00
--  
e.Form.Controls("TextBox1").Text = Tables("员工资料").Current("员工代码")
e.Form.Controls("TextBox2").Text = Tables("员工资料").Current("姓名")
e.Form.Controls("TextBox3").Text = Tables("员工资料").Current("职务")
e.Form.Controls("TextBox5").Text = Tables("员工资料").Current("备注")
e.Form.Controls("TextBox6").Text = Tables("员工资料").Current("身份证号码")
e.Form.Controls("TextBox8").Text = Tables("员工资料").Current("电话")
e.Form.Controls("TextBox9").Text = Tables("员工资料").Current("手机")
e.Form.Controls("TextBox10").Text = Tables("员工资料").Current("EMail")
e.Form.Controls("TextBox11").Text = Tables("员工资料").Current("邮政编码")
e.Form.Controls("TextBox12").Text = Tables("员工资料").Current("住址")
e.Form.Controls("TextBox13").Text = Tables("员工资料").Current("拼音码")
这样的代码的简洁方式呢

--  作者:有点甜
--  发布时间:2015/3/29 10:13:00
--  

 直接绑定表不是更好?

 

 http://www.foxtable.com/help/topics/2263.htm

 


--  作者:wuzuqing
--  发布时间:2015/3/29 11:29:00
--  
那如果要新增行在没有保存之前不显示在表上,保存后才能显示怎么写呢
--  作者:有点甜
--  发布时间:2015/3/29 11:32:00
--  
Dim ctrls As String() = {"TextBox1", "TextBox2"}
Dim cnames As String() = {"员工代码", "姓名"}
For i As Integer = 0 To ctrls.length - 1
    e.Form.Controls(ctrls(i)).Text = Tables("员工资料").Current(cnames(i))   
Next

--  作者:998168
--  发布时间:2015/3/30 4:33:00
--  
以下是引用有点甜在2015/3/29 11:32:00的发言:
Dim ctrls As String() = {"TextBox1", "TextBox2"}
Dim cnames As String() = {"员工代码", "姓名"}
For i As Integer = 0 To ctrls.length - 1
    e.Form.Controls(ctrls(i)).Text = Tables("员工资料").Current(cnames(i))   
Next

甜老师,这个代码写返了吧? Tables("员工资料").Current(cnames(i)) = e.Form.Controls(ctrls(i)).Text 应该是这样的啊!
--  作者:Bin
--  发布时间:2015/3/30 8:33:00
--  
是的,你自己改一下即可
--  作者:998168
--  发布时间:2015/3/30 22:25:00
--  
哈哈, Bin 版主我不是当事人哦!