happy.zjy 发表于 2015-4-10 21:34:00

VB6,如何获取到某个spread 单元格的坐标位置?

我想实现如下图所示的效果,在spread某个单元格的的右部分和下部分,加上其他VB控件,但是我获取spread这个单元格的坐标和宽度高度后,运行结果并不正确。应该怎么设置呢

Alice 发表于 2015-4-13 15:53:00

回复 1楼happy.zjy的帖子

如果你是知道的鼠标位置,可以通过SSGetCellFromPixel方法得到单元格的行和列。

鼠标位置可以通过鼠标相关事件,比如MouseUp,MouseMove来获取。

happy.zjy 发表于 2015-4-13 16:42:00

回复 2楼Alice的帖子

我觉得你好像没有看明白我说的意思。是全键盘操作的。

Alice 发表于 2015-4-13 17:54:00

回复 3楼happy.zjy的帖子

请问,你是说全部都用键盘操作?
那么你想知道的是单元格的Row,Column的索引么?还是其他的信息呢?

happy.zjy 发表于 2015-4-13 22:43:00

回复 4楼Alice的帖子

想知道某个单元格的left,top,width
这些能获取到,问题是无法用这几个值来定位其他控件。和VB6默认的像素单位好像不一致。

Alice 发表于 2015-4-14 10:51:00

回复 5楼happy.zjy的帖子

因为单位不同。
可以按照如下设置。
1.设置UnitType.
fpSpread1.UnitType = UnitTypeTwips
2.单位之间进行转换。
换算的方法为:1 twips=1/72 pixel

happy.zjy 发表于 2015-4-16 18:51:00

能举个列子吗?得到一个单元格的left,top,width,height

Alice 发表于 2015-4-17 14:03:00

回复 7楼happy.zjy的帖子

5楼你提到可以获取到left,right,top,width。
将你获取到的值按照单位转换的方法,换算成和VB6默认一致的即可。

happy.zjy 发表于 2015-4-26 17:22:00

回复 8楼Alice的帖子

额,单元换算的事情,我了解了。

我想问的是,用什么spread的什么属性和方法,能得到某一个单元格的left,top ?

eg:

单击某一单元格的时候,把text1这个控件,移动到这个单元格上面
Private Sub fpSpread1_Click(ByVal Col As Long, ByVal Row As Long)
         Me.Text1.move???
End Sub

??? 那里,应该用spread的什么属性或方法?

Alice 发表于 2015-4-27 14:21:00

回复 9楼happy.zjy的帖子

很抱歉回复晚了。

GetCellPos方法可以返回特定单元格的位置和长宽,单位是wips。参考文档:http://sphelp.grapecity.com/WebHelp/Spread8/WebSiteHelp/funct199.html#510918
SSGetCellRect方法可以返回单元格rectangle坐标,具体请参考文档:http://sphelp.grapecity.com/WebHelp/Spread8/WebSiteHelp/funct14c.html#959420

具体你可以根据需求选择。
另外根据之前在2楼的提示,你可以通过相关的鼠标事件,比如MouseDown来获取鼠标位置。
页: [1] 2
查看完整版本: VB6,如何获取到某个spread 单元格的坐标位置?