以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  在窗体中用按钮控件,怎么实现流程状态显示呢?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=159012)

--  作者:李孝春
--  发布时间:2020/12/10 16:10:00
--  在窗体中用按钮控件,怎么实现流程状态显示呢?
在窗体中用按钮控件,怎么实现流程状态显示呢?
想实现当党员信息表中  递交申请书时间  不为空  且标志列为true时
接收入党申请书  按钮显示进度2图片    
反之  标志列为false时  接收入党申请书  按钮显示进度1图片    


全局代码事件如下:
Public zhuangtai1 As Image = GetImage("进度1.png")
Public zhuangtai2 As Image = GetImage("进度2.png")

窗体加载事件代码如下:
Dim lb As WinForm.Label = e.Form.Controls("Label1")
lb.Text=vars("姓名")
Dim lvw As WinForm.ListView = Forms("党建工作").Controls("ListView1")
Dim vr As WinForm.ListViewRow = lvw.Current \'获取ListView的当前行
If vr IsNot Nothing Then \'如果不存在当前行,也就是内有选定任何一行
    Dim ab As DataRow
    ab=Tables("党员信息").DataTable.Find("姓名=\'" & vars("姓名") & "\'")
    If ab IsNot Nothing Then
        If ab("递交申请书时间") IsNot Nothing And ab("标志")=True Then
            e.Form.Controls("接收入党申请书").Visible = True
            e.form.Controls("接收入党申请书").basecontrol.BringToFront
            e.Form.Controls("审看入党申请书").Visible = False
        End If
        If ab("递交申请书时间") Is Nothing And ab("标志")=False Then
            e.Form.Controls("接收入党申请书").Visible = False
            e.Form.Controls("审看入党申请书").Visible = False
        End If
    End If
End If


窗体中用按钮控件做成了如下效果图:

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

[此贴子已经被作者于2020/12/10 16:12:29编辑过]

--  作者:有点蓝
--  发布时间:2020/12/10 16:49:00
--  
http://www.foxtable.com/webhelp/topics/0772.htm

    If ab IsNot Nothing Then
        If ab("递交申请书时间") IsNot Nothing And ab("标志")=True Then
            e.Form.Controls("接收入党申请书").Visible = True
            e.form.Controls("接收入党申请书").basecontrol.BringToFront
e.form.Controls("接收入党申请书").Image = zhuangtai1
            e.Form.Controls("审看入党申请书").Visible = False
        End If
        If ab("递交申请书时间") Is Nothing And ab("标志")=False Then
            e.Form.Controls("接收入党申请书").Visible = False
e.form.Controls("接收入党申请书").Image = zhuangtai2
            e.Form.Controls("审看入党申请书").Visible = False
        End If
    End If


--  作者:李孝春
--  发布时间:2020/12/10 17:24:00
--  回复:(有点蓝)http://www.foxtable.com/webhelp/to...
有点蓝老师  

下述代码可以实现遍历当前窗体中所有按钮控件,并返回控件数量
Dim ls As new List(of String)

For Each c As object In e.form.controls    
    If typeof c Is winform.button Then        
        ls.add(c.name)        
    End If   
Next

MessageBox.Show(ls.Count)

一楼图片流程按钮节点太多  累计达五十个  一个个的按二楼代码进行添加的话  太繁琐   
有没有更高效的办法实现如下效果呢?

所有按钮控件在默认的时候都是进度1图片
当第一阶段节点都走完的时候,对应的第一阶段的按钮全部批量显示图片进度1   其他的节点依旧显示图片进度2


e.form.Controls("接收入党申请书").Image = zhuangtai1   这个地方有没有办法实现批量多个按钮控件一起赋值图片呢?

--  作者:有点蓝
--  发布时间:2020/12/10 20:14:00
--  
dim sre() as string = {"按钮1","按钮1"}
for each s as string in sre 
e.form.Controls(s).Image = zhuangtai1
next