以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  动态生成按钮的代码怎么设置的?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=4106)

--  作者:blackzhu
--  发布时间:2009/8/28 13:00:00
--  动态生成按钮的代码怎么设置的?
 Dim T As WinForm.button
T = e.Form.CreateControl("button2", ControlTypeEnum.button)
T.Text = "增加一行"
T.Left = 175
T.Top = 75
T.WIDTH = 90
T.HEIGHT = 60
e.Form.AddControl(T)


Dim T1 As WinForm.button
T1 = e.Form.CreateControl("button3", ControlTypeEnum.button)
T1.Text = "下一行"
T1.Left = 100
T1.Top = 100
T1.WIDTH = 90
T1.HEIGHT = 60
e.Form.AddControl(T1)



 这个代码是生成二个按钮,我想问一下的是这二个生成的按钮,我要设置代码怎么做的,在哪儿写代码进去?
--  作者:mr725
--  发布时间:2009/8/28 13:28:00
--  

ResumeRedraw

恢复绘制窗口。

Foxtable提供了动态增加和删除控件的功能,我们可以先执行StopRedraw方法,停止绘制窗口,等到动态增加或删除控件代码执行结束后,再执行ResumeRedraw方法,重新绘制窗口。

例如单机某个按钮可动态加入一些控件,该按钮的代码通常应该设为:

e.Form.StopRedraw()
\'动态增加或删除控件的代码

e.Form.ResumeRedraw()

没试过~ 呵呵


--  作者:blackzhu
--  发布时间:2009/8/28 13:39:00
--  
以下是引用mr725在2009-8-28 13:28:00的发言:

ResumeRedraw

恢复绘制窗口。

Foxtable提供了动态增加和删除控件的功能,我们可以先执行StopRedraw方法,停止绘制窗口,等到动态增加或删除控件代码执行结束后,再执行ResumeRedraw方法,重新绘制窗口。

例如单机某个按钮可动态加入一些控件,该按钮的代码通常应该设为:

e.Form.StopRedraw()
\'动态增加或删除控件的代码

e.Form.ResumeRedraw()

没试过~ 呵呵

  做不来,不知道怎么弄?一个按钮没有问题,做不到两个,有没有哪位高手指点一下.


--  作者:yangming
--  发布时间:2009/8/28 13:45:00
--  

代码放到窗口 的

AfterLoad 事件中,也可以放到其它窗口的按钮中,如放到其它窗口,那还要首先打开此窗口代码

生成窗口后执行,通常在此对窗口和控件进行初始化设置。


--  作者:yangming
--  发布时间:2009/8/28 13:47:00
--  
这两个按钮是并排放的
Dim T As WinForm.button
T = e.Form.CreateControl("button2", ControlTypeEnum.button)
T.Text = "增加一行"
T.Left = 175
T.Top = 75
T.WIDTH = 90
T.HEIGHT = 60
e.Form.AddControl(T)
Dim T1 As WinForm.button
T1 = e.Form.CreateControl("button3", ControlTypeEnum.button)
T1.Text = "下一行"
T1.Left = 175+90+5
T1.Top = 75
T1.WIDTH = 90
T1.HEIGHT = 60
e.Form.AddControl(T1)

--  作者:yangming
--  发布时间:2009/8/28 13:49:00
--  
这是竖着排列的,你自己比较一下吧
Dim T As WinForm.button
T = e.Form.CreateControl("button2", ControlTypeEnum.button)
T.Text = "增加一行"
T.Left = 175
T.Top = 75
T.WIDTH = 90
T.HEIGHT = 60
e.Form.AddControl(T)
Dim T1 As WinForm.button
T1 = e.Form.CreateControl("button3", ControlTypeEnum.button)
T1.Text = "下一行"
T1.Left = 175
T1.Top = 75*2+5
T1.WIDTH = 90
T1.HEIGHT = 60
e.Form.AddControl(T1)

--  作者:blackzhu
--  发布时间:2009/8/28 13:51:00
--  
以下是引用yangming在2009-8-28 13:47:00的发言:
这两个按钮是并排放的
Dim T As WinForm.button
T = e.Form.CreateControl("button2", ControlTypeEnum.button)
T.Text = "增加一行"
T.Left = 175
T.Top = 75
T.WIDTH = 90
T.HEIGHT = 60
e.Form.AddControl(T)
Dim T1 As WinForm.button
T1 = e.Form.CreateControl("button3", ControlTypeEnum.button)
T1.Text = "下一行"
T1.Left = 175+90+5
T1.Top = 75
T1.WIDTH = 90
T1.HEIGHT = 60
e.Form.AddControl(T1)

   大姐这个我明白的,我想问的是,如果两个按钮生成了以后,我要在生成的两个按钮中设置代码,怎么做?


--  作者:yangming
--  发布时间:2009/8/28 13:54:00
--  
窗口的通用事件Click中设置如下代码:

Select Case e.Sender.Name
    Case "First"
        CurrentTable.Position = 0
    Case "Last"
        CurrentTable.Position = CurrentTable.Rows.Count - 1
    Case "Prev"
        CurrentTable.Position = CurrentTable.Position - 1
    Case "Next"
        CurrentTable.Position = CurrentTable.Position +
1
End
Select


不过要先判断一下是否有控件存在,不然会出错的

[此贴子已经被作者于2009-8-28 13:54:35编辑过]

--  作者:yangming
--  发布时间:2009/8/28 14:04:00
--  
我发现不用判断也不会报错

Select Case e.Sender.Name
    Case "button2"
        CurrentTable.AddNew()
     Case "button3"
        CurrentTable.Position = CurrentTable.Position + 1
End Select
[此贴子已经被作者于2009-8-28 14:05:19编辑过]

--  作者:blackzhu
--  发布时间:2009/8/28 14:05:00
--  
  之前我也在全局事件里做的,怎么错了呢.