|
vfp程序界面中,在父窗口點擊一個按鈕到子窗口,子窗口可輸入關鍵字,
如何使主窗口某按鈕觸發(fā)事件時,引用父窗口里的控件,直接用父窗口控件名稱好象不可以的,請高手指點 *------------------------------------------------------------------------------------- 用父窗口(表單)的文件名. 如你的父窗口(表單)文件名為FormF.scx,Name為Form1, 那么在子窗口(表單)調(diào)用:FormF.Text1.value='123',而不用父窗口(表單)的NAME值。 舉個例子: 表單1的文件名為 FORM_1.SCX 表單1的NAME值為 FORM1 表單2的文件名為 FORM_2.SCX 表單2的NAME值為 FORM2 當表單1和表單2都在運行時,在表單1修改表單2的屬性的最簡單方法: 如: FORM_2.CAPTION='修改成功!' 而不是 FORM2.CAPTION='修改成功!' 同理: 當表單1和表單2都在運行時,在表單2修改表單1的屬性的最簡單方法: 如: FORM_1.CAPTION='修改成功!' 而不是 FORM1.CAPTION='修改成功!' -------------------------------------------- 可以在父窗口初始化(Init)時定義一個全局變量: Public goParent goParent = THIS 這樣不管在什么地方,都可以用類似這樣的代碼來引用該窗口里的控件:goParent.Command1.Caption = "" 。 也可以把父窗口作為一個參數(shù)傳遞給子窗口,然后在子窗口中引用。 父窗口這樣調(diào)用子窗口:DO FORM FORM1 WITH THIS 然后在子窗口的Init事件中可以這樣: LPARAMETERS toParent toParent.Command1.Caption = "" 如果要在子窗口的Init事件以外引用父窗口,則可以給子窗口新建一個屬性,比如oParent,然后Init事件: LPARAMETERS toParent THIS.oParent = toParent 這樣在子窗口的其他地方就可以這樣用了: THISFORM.oParent.Command1.Caption = "" --------------------------------------------- 如何實現(xiàn)兩個表單之間的相互控制? 現(xiàn)在有兩個表單 form1 和 form2 (不是表單集) 他們在同時運行之后 如何相互控制呢,比如說 點擊form1 的command1 按鈕 使form2 的 text1 文本框內(nèi)容清空 如何實現(xiàn)呢? 答:方法很多 1、表單是容器對象,它可以像變量一樣來賦值 a、在運行這兩個表單前可以定義兩個全局變量 public m.loForm1, m.loForm2 b、在表單Form1的Init 事件中寫入 m.loForm1 = ThisForm c、在表單Form2的Init 事件中寫入 m.loForm2 = ThisForm 那么要點擊form1 的command1 按鈕 使form2 的 text1 文本框內(nèi)容清空 在Form1的command1 按鈕的Click 事件中寫如下代碼即可 m.loForm2.text1.value = '' m.loForm2.Refresh 2、可以使用_VFP 系統(tǒng)變量 的Forms 屬性來操作這兩個表單 首先 在Form1的command1按鈕的Click事件中 通過For 循環(huán)語句 通過 _VFP.Forms(I).Caption='Form2'或 _VFP.Forms(I).Name='Form2' 來找到Form2這個表單 就可以通過 _VFP.Forms(I).Text1.value = '' 來實現(xiàn)了 For lnFor=1 to _VFP.Forms.Count if ( _VFP.Forms(lnFor).Caption='Form2') then _VFP.Forms(lnFor).Text1.value = '' endif EndFor |
|
|