Foxtable(狐表)用户栏目专家坐堂 → [求助]按照顺序增加控件textbox


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

主题:[求助]按照顺序增加控件textbox

帅哥哟,离线,有人找我吗?
大红袍
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/16 9:45:00 [只看该作者]

不会做就上传具体例子。


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/3/16 10:04:00 [只看该作者]

http://pan.baidu.com/s/1c0TYUfm

实际上每次增加的是3个控件(textbox,label1,label2)
希望把这个3个数据都写入到新增行中。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/16 10:08:00 [只看该作者]

 1、不需要每次上传整个实例啊,单独做一个例子上来就好啊。

 

 2、label1、label2的赋值,直接赋值就好啊,最后写

 

r("回复者") = label1.Text

r("回复时间") = label2.Text

 

 3、textbox的赋值,看10楼。


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/3/16 10:46:00 [只看该作者]

.NET Framework 版本:2.0.50727.8670
Foxtable 版本:2015.12.22.1
错误所在事件:窗口,BUG论坛,TextChanged
详细错误信息:
无法在 System.Int32 和 System.String 上执行“=”操作。
identify是int型对的吧。
需要怎么改一下?

Dim fdr As DataRow = DataTables("盖楼").Find("_Identify = CInt('" & e.Sender.name.Replace("textbox", "") & "')")
If fdr IsNot Nothing Then
    fdr("备注") = e.sender.Text
End If

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/16 10:48:00 [只看该作者]

1、

 

txt = e.Form.CreateControl("TextBox" & r("_Identify"), ControlTypeEnum.TextBox)

 

2、

 

Dim fdr As DataRow = DataTables("盖楼").Find("_Identify = '" & e.Sender.name.Replace("TextBox", "") & "'")

If fdr IsNot Nothing Then

    fdr("备注") = e.sender.Text

End If


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/3/16 10:49:00 [只看该作者]

还有就是,每次打开之前添加的控件都消失了,不应该都保留么。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/16 10:52:00 [只看该作者]

以下是引用huhu在2016/3/16 10:49:00的发言:
还有就是,每次打开之前添加的控件都消失了,不应该都保留么。

 

动态添加的肯定不会保存啊。打开之后,根据你的表的数据,循环生成多次控件不就行了。


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/3/16 10:57:00 [只看该作者]

1、

 

txt = e.Form.CreateControl("TextBox" & r("_Identify"), ControlTypeEnum.TextBox)

 

2、

 

Dim fdr As DataRow = DataTables("盖楼").Find("_Identify = '" & e.Sender.name.Replace("TextBox", "") & "'")

If fdr IsNot Nothing Then

    fdr("备注") = e.sender.Text

End If


我就是这么做的

1、

 

txt = e.Form.CreateControl("TextBox" & r("_Identify"), ControlTypeEnum.TextBox)

 

2、

 Dim txt As WinForm.TextBox

Dim Label1,label2 As WinForm.Label

txt = e.Form.CreateControl("TextBox" & r("_Identify"), ControlTypeEnum.TextBox)

label1 = e.Form.CreateControl("label1" & r("_Identify"), ControlTypeEnum.label)

label2 = e.Form.CreateControl("label2" & r("_Identify"), ControlTypeEnum.label)



Dim fdr As DataRow = DataTables("盖楼").Find("_Identify = '" & e.Sender.name.Replace("TextBox", "") & "'")

If fdr IsNot Nothing Then

    fdr("备注") = e.sender.Text

End If


报错


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/16 11:13:00 [只看该作者]

汗,全局控件的textchanged事件啊

 

If e.Sender.Name Like "TextBox*" Then
   
    Dim fdr As DataRow = DataTables("盖楼").Find("_Identify = '" & e.Sender.name.Replace("TextBox", "") & "'")
   
    If fdr IsNot Nothing Then
       
        fdr("备注") = e.sender.Text
       
    End If
   
End If


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/3/16 11:28:00 [只看该作者]

afterload代码:就是把每个控件都显示出来
DataTables("盖楼").LoadFilter = "BUG_ID = '" & Vars("BUGID") & "'"
DataTables("盖楼").Load
For Each r As DataRow In DataTables("盖楼").DataRows
    If r.Isnull("BUG_ID") = False And r.Isnull("备注") = False And r.Isnull("回复者") = False And r.Isnull("回复时间") = False Then
        static i As Integer = 0
        static y As Integer = 20
        Dim txt As WinForm.TextBox
        Dim Label1,label2 As WinForm.Label
        txt = e.Form.CreateControl("TextBox" & r("_Identify"), ControlTypeEnum.TextBox)
        label1 = e.Form.CreateControl("label1" & r("_Identify"), ControlTypeEnum.label)
        label2 = e.Form.CreateControl("label2" & r("_Identify"), ControlTypeEnum.label)
        txt.Left = 150
        txt.Top = y
        txt.height = 50
        txt.MultiLine = True
        txt.ScrollBars = Windows.Forms.ScrollBars.Vertical
        txt.SetBounds(150,y,500,50)
        e.Form.AddControl(txt)
        label1.Left = 50
        label1.Top = y
        e.Form.AddControl(label1)
        Dim str As String
        Dim id  As Integer
        id = user.name.IndexOf("@")
        str = user.name.SubString(0,id)
        label1.Text = i & "楼" & str
        label2.SetBounds(50,y + 20,100,50)
        label2.Left = 50
        label2.Top = y + 20
        e.Form.AddControl(label2)
        label2.Text = Date.now
        txt.text = r("备注")
        label1.Text = r("回复者")
        label2.Text = r("回复时间")
        i+= 1
        y += txt.height + 10
    End If
Next
盖楼click代码:应该有问题。假如已经有了3个textbox了。这时,执行它,不就又覆盖了第一个了吗。如何判断已有的textbox的top距离。
DataTables("盖楼").LoadFilter = "BUG_ID = '" & Vars("BUGID") & "'"
DataTables("盖楼").Load
Dim r As Row = Tables("盖楼").AddNew()
r("BUG_ID") = Vars("BUGID")
static i As Integer = 0
static y As Integer = 20
Dim txt As WinForm.TextBox
Dim Label1,label2 As WinForm.Label
txt = e.Form.CreateControl("TextBox" & r("_Identify"), ControlTypeEnum.TextBox)
label1 = e.Form.CreateControl("label1" & r("_Identify"), ControlTypeEnum.label)
label2 = e.Form.CreateControl("label2" & r("_Identify"), ControlTypeEnum.label)
txt.Left = 150
txt.Top = y
txt.height = 50
txt.MultiLine = True
txt.ScrollBars = Windows.Forms.ScrollBars.Vertical
txt.SetBounds(150,y,500,50)
e.Form.AddControl(txt)
label1.Left = 50
label1.Top = y
e.Form.AddControl(label1)
Dim str As String
Dim id  As Integer
id = user.name.IndexOf("@")
str = user.name.SubString(0,id)
label1.Text = i & "楼" & str
r("回复者") = label1.Text
label2.SetBounds(50,y + 20,100,50)
label2.Left = 50
label2.Top = y + 20
e.Form.AddControl(label2)
label2.Text = Date.now
r("回复时间") = label2.Text
i+= 1
y += txt.height + 10

 回到顶部
总数 26 上一页 1 2 3 下一页