以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  动态生成的空间按click没有反应  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=60388)

--  作者:zunwoun
--  发布时间:2014/11/24 10:48:00
--  动态生成的空间按click没有反应
*************************************************************
Dim 窗口名 As String="总经理审核出纳"
Dim 数据库 As String="总经理审核出纳_出纳交易审批记录"
Dim 面板名 As String="交易列示"
For Each c As Winform.Control In forms(窗口名).Controls
    If c.name.StartsWith("列示") Then
        forms(窗口名).RemoveControl(c.Name)
    End If
Next
Dim i As Integer=0
For Each dr As DataRow In Tables(数据库).DataTable.DataRows    
    Dim lbl1 As WinForm.Control
    lbl1 = forms("产品查询").CreateControl("列示" & dr("交易号" ), ControlTypeEnum.Button)
    forms(窗口名) .Controls(面板名).AddControl(lbl1)

     With forms(窗口名).Controls("列示" & dr("交易号"))    
        .Left = forms(窗口名 ).Controls(面板名).Width*0.1
        .Top = forms(窗口名 ).Controls(面板名).Width*(i*0.18+0.03)
        .Width = forms(窗口名 ).Controls(面板名).Width*0.8
        .Height= forms(窗口名 ).Controls(面板名).Width*0.15
       .text=dr("交易日期") & "," & dr("交易内容") & ","  & dr("收入方") & ","  & dr("支出方") & ",交易金额¥"  & format(dr("交易金额"),"000" & "元")
    End With
    i=i+1
Next


********************************************
上述代码动态生成Button控件按click等操作都没有反应,我换其他类型的控件也不行,请版主赐教。

--  作者:有点甜
--  发布时间:2014/11/24 10:50:00
--  
  什么意思?是上面的代码不执行,还是生成后的button不触发Click事件?
--  作者:zunwoun
--  发布时间:2014/11/24 11:57:00
--  
生成没有问题,但生成后的控件执行“click"没有反应
--  作者:有点甜
--  发布时间:2014/11/24 11:59:00
--  
 生成以后,你的click代码写到那里去了?你要写到窗口的全局事件click那里才行
--  作者:逛逛
--  发布时间:2014/11/24 12:00:00
--  
click 在全局事件?
--  作者:zunwoun
--  发布时间:2014/11/24 12:01:00
--  
msgbox(e.Sender.Name)
If e.Sender.Name.StartsWith("列示") Then

  \'  Dim 交易号 As String = e.Sender.Name.SubString(2)

   \' Dim cmd As New SQLCommand
  \'  cmd.C
   \' cmd.CommandText = "update {出纳交易审批记录} set [总经理审批]=1 where 交易号=\'" & 交易号 & "\'"
  \'  cmd.ExecuteNonQuery()
  \'  Tables("总经理审核出纳_出纳交易审批记录").Fill("Select * From {出纳交易审批记录} where 总经理审批= 0 and 会计审批=1","zunwoun",False)
  \'  Functions.Execute("总经理审核出纳_交易列示")
End If

--  作者:zunwoun
--  发布时间:2014/11/24 12:01:00
--  
为了测试,只执行一个命令
--  作者:zunwoun
--  发布时间:2014/11/24 12:02:00
--  
其他控件的”click“都有反应,就是动态生成的那部分没有
--  作者:有点甜
--  发布时间:2014/11/24 14:04:00
--  
以下是引用zunwoun在2014-11-24 12:02:00的发言:
其他控件的”click“都有反应,就是动态生成的那部分没有

 

不可能吧?做个例子上传上来看看。


--  作者:zunwoun
--  发布时间:2014/11/24 16:43:00
--  
我知道错在那里,在生成控件的时候把form的名字给弄错了,但还是能生成,但不能用"click"触动