请教关于表格焦点的问题
我在表格某单元格内文本框的interactivechange方法内写代码进行查询,根据内容在另一个下拉框中显示候选内容。
问题是:下拉框没有“镶嵌”在表格里,我需要在表格不同行输入内容时,这个下拉框的位置能自动显示在该单元格下面。为了定位下拉框的top位置,在单元格内text的keypress内用函数mrow(0,3)求鼠标纵坐标,然后确定下拉框的top值。
但是这样做必须要把鼠标在单元格内点击才能保证取出正确的mrow(0,3),而当其他方式让单元格获得焦点时,有时会得不到正确的mrow(0,3)。
有什么更好的办法可以解决这个呢?
[解决办法]
下拉框“镶嵌”在表格里后,把原来的那个位置的TEXT删除了,再把combo的boundto设置成.t.就可以了
接着你就可以把“组合框”既当成显示的带有下拉列表的text了,只是需要设置一下combo的rowsource和rowsource type两个属性就可以了!
[解决办法]
如何在Grid中加入复选框或组合框?*-----------------------------方法一:1、把 Grid 的列数改为>0 &&方法二不需要此项2、右键单击 Grid ,编辑,在工具条中把 Checkbox 拿到要加入复选框的列中3、右键单击 Grid ,编辑,然后选择加入复选框的列。在属性窗口上的“数据”页面上把 Grid 的 Colum(加入复选框的Column)的 CurrentControl 值改成 Check1,然后根据你的需要修改 Sparse 的值,来指定 CurrentControl 属性是影响列对象中的全部单元,还是仅影响列对象中的活动单元。方法二:在 Grid 的INIT 事件中:With This.Column4 .AddObject("Check1","CheckBox") .CurrentControl='Check1' .Sparse=.F. .Check1.Caption='' .Check1.Visible=.T.Endwith*******************************************************************同理可向 Grid 中添加 ComboBox 控件等Grid 的 Init 事件With This.Column3 && 假设姓别字段对应 Grid 的第3列 .AddObject("Combo100","Combobox") .CurrentControl='Combo100' * .sparse=.f. .Combo100.Style=2 .Combo100.RowSourceType=0 .Combo100.Visible=.T.EndwithThis.Column3.Combo100.AddItem('男')This.Column3.Combo100.AddItem('女')或Grid 的 Init 事件With This.Column3 .AddObject("Combo100","Combobox") .CurrentControl='Combo100' * .sparse=.f. .Combo100.Style=2 .Combo100.RowSourceType=0 .Combo100.Visible=.T.EndwithSelect 表名 &&此表可以是Grid的数据源也可以不是Grid的数据源Scan This.Column3.Combo100.AddItem(字段名)Endscan或Public gcBtmc(8)gcBtmc(1)=''gcBtmc(2)='补贴一'gcBtmc(3)='补贴二'gcBtmc(4)='补贴三'gcBtmc(5)='补贴四'gcBtmc(6)='补贴五'gcBtmc(7)='补贴六'gcBtmc(8)='补贴七'With This.Column8 .AddObject('Combobox1','Combobox') .CurrentControl='Combobox1' .Combobox1.Style=2 .Combobox1.RowSourceType=5 .Combobox1.RowSource='gcBtmc' .Combobox1.Visible=.T.Endwith