vfp通过程序创建表单,添加OptionGroup无法修改caption
Define Class form1 As Form
Top = 0
Left = 0
Height = 600
Width = 1000
DoCreate = .T.
Caption = "Form1"
Name = "Form1"
AutoCenter = .T.
Add Object optiongroup1 As OptionGroup With ;
Buttoncount = 5, ;
Left = 24, ;
Top = 60, ;
Visible = .T., ;
Width = 300, ;
height = 300, ;
Name = "optiongroup1"
Procedure Init
thisform.optiongroup1.option1.Caption = 'xxxxx'
thisform.optiongroup1.option2.Caption = 'xxxxx'
Endproc
这里的optiongroup1 里的option1的caption属性无法修改,请问原因是什么呢?谢谢。
[解决办法]
FORM1 = NEWOBJECT("C_FORM")
FORM1.SHOW
READ EVENTS
RETURN
DEFINE CLASS C_FORM AS FORM
AUTOCENTER=.T.
CAPTION="表单查询示例"
SHOWTIPS=.T.
ADD OBJECT COMMAND1 AS COMMANDBUTTON WITH TOP=6,LEFT=290,HEIGHT=28,CAPTION="表格重置",AUTOSIZE=.T.
ADD OBJECT OPTIONGROUP1 AS OPTIONGROUP WITH TOP=6,LEFT=10,HEIGHT=28,BUTTONCOUNT=2,AUTOSIZE=.T.
ADD OBJECT GRID1 AS GRID WITH TOP=((THISFORM.HEIGHT-THISFORM.GRID1.HEIGHT)/2)+20,LEFT=(THISFORM.WIDTH-THISFORM.GRID1.WIDTH)/2
PROCEDURE COMMAND1.CLICK
SET FILTER TO
FORM1.GRID1.REFRESH
FORM1.OPTIONGROUP1.VALUE=0
ENDPROC
PROCEDURE OPTIONGROUP1.INIT
WITH THIS
.VALUE=0
.OPTION2.TOP=.OPTION1.TOP
.OPTION2.LEFT=.OPTION1.WIDTH+29
FOR I=1 TO THIS.BUTTONCOUNT
.BUTTONS(I).AUTOSIZE=.T.
.BUTTONS(I).CAPTION=IIF(MOD(I,2)=1,"男","女")
ENDFOR
ENDWITH
ENDPROC
PROCEDURE OPTIONGROUP1.CLICK
SET FILTER TO TABNAME.性别==FORM1.OPTIONGROUP1.BUTTONS(FORM1.OPTIONGROUP1.VALUE).CAPTION
FORM1.GRID1.REFRESH
ENDPROC
PROCEDURE GRID1.INIT
CREATE CURSOR TABNAME (XM C(10),性别 C(2))
FOR I=1 TO 10
INSERT INTO TABNAME VALUES (REPLICATE(CHR(64+I),10),IIF(MOD(I,2)=0,"男","女"))
ENDFOR
GO TOP
WITH THIS
.FONTSIZE=10
.HEADERHEIGHT=28
.RECORDSOURCETYPE = 1
.RECORDSOURCE = "TABNAME"
.ROWHEIGHT=24
* .THEMES = .F.
FOR I = 1 TO .COLUMNCOUNT
WITH .COLUMNS(I).HEADER1
.ALIGNMENT=2
.BACKCOLOR = RGB(0,0, 255)
.FORECOLOR = RGB(255,255,255)
ENDWITH
ENDFOR
ENDWITH
ThisForm.ShowTips = .T.
*ThisForm.Grid1.AllowCellSelection = .T.
ENDPROC
PROCEDURE DESTROY
CLEAR EVENTS
ENDPROC
ENDDEFINE
Public oform1
oform1 = Newobject("form1")
oform1.Show
Return
Define Class form1 As Form
Top = 0
Left = 0
Height = 600
Width = 1000
DoCreate = .T.
Caption = "Form1"
Name = "Form1"
AutoCenter = .T.
Add Object optiongroup1 As OptionGroup With ;
Buttoncount = 5, ;
Left = 24, ;
Top = 60, ;
Visible = .T., ;
Width = 300, ;
height = 300, ;
Name = "optiongroup1"
Procedure Init
Thisform.optiongroup1.option1.Caption = 'xxxxx'
Thisform.optiongroup1.option2.Caption = 'YYYYY'
Thisform.optiongroup1.option1.AutoSize=.T.
Thisform.optiongroup1.option2.AutoSize=.T.
EndProc
Enddefine