Foxtable(狐表)用户栏目专家坐堂 → 窗口数据合计


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

主题:窗口数据合计

帅哥哟,离线,有人找我吗?
ZJZK2018
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
窗口数据合计  发帖心情 Post By:2018/5/19 13:35:00 [只看该作者]

老师如何达到下面的需求:

图片点击可在新窗口打开查看此主题相关图片如下:e3}76b_z2klx7$q4h)99.png
图片点击可在新窗口打开查看

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106354 积分:540911 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/5/19 14:21:00 [只看该作者]

在每个textbox的textchanged写代码

dim txt as string = e.form.controls(textbox1).text
dim sum as integer
dim str as string
if txt > "" then
str = str & "木工:" & txt & "人,"
sum+= val(txt)
endif
txt  = e.form.controls(textbox2).text
dim str as string
if txt > "" then
str = str & "泥工:" & txt & "人,"
sum+= val(txt)
endif
……其它自己补齐
e.form.controls(textbox显示).text = str & "共计:" & sum & “人”

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/5/19 17:17:00 [只看该作者]

有点蓝老师:

我的需求是:因为工种实在太多,一个一个编辑感觉太多,能否采用历遍控件的名称进行编辑,如“木工”的label的名称设为“mg_lb”,textbox的名称设为“mg_tbx”,其他类同,折腾了半天还是编不出来,只有麻烦老师了,十分感谢!!

For Each c As WinForm.Control In e.Form.Controls
    If Typeof c Is WinForm.TextBox Then '判断控件是否是文本框
        Dim t As WinForm.TextBox = c '使用特定类型的变量引用控件
        If t.Value > ""
            MessageBox.Show(t.name)
            't.Value = Nothing
        End If
    End If
    If Typeof c Is WinForm.Label Then '判断控件是否是文本框
        Dim lb As WinForm.Label = c  '使用特定类型的变量引用控件
        If lb.Value > ""
            MessageBox.Show(lb.name)
            't.Value = Nothing
        End If
    End If
Next


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20180519171746.png
图片点击可在新窗口打开查看


 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106354 积分:540911 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/5/19 17:30:00 [只看该作者]

Dim sum As Integer
Dim str As String

For Each c As WinForm.Control In e.Form.Controls
    If Typeof c Is WinForm.TextBox Then '判断控件是否是文本框
        Dim t As WinForm.TextBox = c '使用特定类型的变量引用控件
        If t.Name.EndsWith("_tbx") AndAlso t.Text > ""
            str = str & e.Form.controls(t.Name.Split("_")(0) & "_lb").text & t.Text & "人,"
            sum+= val(t.Text)
        End If
    End If
Next
msgbox(str & "共计:" & sum & "人")
[此贴子已经被作者于2018/5/19 17:31:23编辑过]

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/5/19 17:43:00 [只看该作者]

有点蓝老师出错了:


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


 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106354 积分:540911 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/5/19 17:49:00 [只看该作者]

代码测试没有问题,请检查其它代码

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/5/19 17:52:00 [只看该作者]

谢谢有点蓝老师,我搞错了

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/5/24 20:43:00 [只看该作者]

老师你好:

3楼是根据文本框内容生成一个字符串,我现在想双击这个字符串,把这字符串相关的数字值返回到窗口界面中相应的textbox中去,如何操作?谢谢

Dim sum As Integer
Dim str As String
Dim st As String = "施工人员:混凝土工:3人,钢筋工:1人,木工:2人,共计:6人"
For Each c As WinForm.Control In e.Form.Controls
    If Typeof c Is WinForm.label Then '判断控件是否是文本框
        Dim t As WinForm.label = c '使用特定类型的变量引用控件
        If st.Contains(t.text) Then
            
            MessageBox.Show(t.text)
        End If
    End If
Next
[此贴子已经被作者于2018/5/24 20:43:34编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/24 22:20:00 [只看该作者]


Dim sum As Integer
Dim str As String
Dim st As String = "施工人员:混凝土工:3人,钢筋工:1人,木工:2人,共计:6人"
st = st.Replace("施工人员:", "")
Dim ary As String() = st.split(",")
For Each c As WinForm.Control In e.Form.Controls
    If Typeof c Is WinForm.label Then '判断控件是否是文本框
        Dim t As WinForm.label = c '使用特定类型的变量引用控件
        For Each s As String In ary
            If s.contains(t.text) Then
                Dim lbname As String = t.name
                e.form.controls(lbname.replace("_lb", "_tbx")).text = s.split(":")(1)
            End If
        Next
    End If
Next

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/5/25 12:02:00 [只看该作者]

老师你好:
下面这段代码如何修改?谢谢
Dim dics As new SortedDictionary(Of Integer, object)
For Each c As object In e.form.controls
    dics.Add(c.tabindex, c)
Next
For Each key As Integer In dics.keys

   If Typeof cc Is WinForm.ComboBox Then '判断控件是否是文本框
       Dim t As WinForm.ComboBox = cc '使用特定类型的变量引用控件
        If t.Name.EndsWith("_tbx") AndAlso t.Text > ""
            str = str & e.Form.controls(t.Name.Split("_")(0) & "_lb").text & t.Text & ","
            'sum += val(t.Text)
        End If
    End If
  
Next
msgbox(str)

 回到顶部
总数 15 1 2 下一页