找回密码
 立即注册

QQ登录

只需一步,快速开始

tangshanman

银牌会员

11

主题

16

帖子

3287

积分

银牌会员

积分
3287

活字格认证

tangshanman
银牌会员   /  发表于:2015-5-22 09:07  /   查看:5309  /  回复:4
你好。我想做一个录入单。具体方法是,A列设定为‘存货编码’,B列设定为参照。当对某一行的A列进行编辑时,该行的B列单元格类型改变为button。当B列单元格类型为BUTTON时,单击B列该单元格打开新的form窗体。请问如何实现?

4 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-5-22 10:23:00
沙发
回复 1楼tangshanman的帖子

感谢对该问题的反馈。
经过电话沟通,你的需求是如何获取点击的单元格坐标。
如果是已知鼠标坐标,可以通过Spread.HitTest方法将坐标转换为具体的行列信息。
以下代码演示了如何获取点击单元格的行和列,供你参考。

  1.           FarPoint.Win.Spread.HitTestInformation info=  this.fpSpread1.HitTest(e.X, e.Y);
  2.           this.Text = info.ViewportInfo.Row.ToString() + "," + info.ViewportInfo.Column.ToString();
  3.         
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-5-22 11:38:00
板凳
回复 1楼tangshanman的帖子

你好。
根据电话沟通,你可以尝试MouseDown事件来替换。
单元格为按钮,MouseDown事件可触发。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
tangshanman
银牌会员   /  发表于:2015-5-29 08:38:00
地板
回复 3楼Alice的帖子

您好。
根据您的建议将获取单元格位标语句定在mousedown事件中,是可行的。但却产生了一个新问题,就是用鼠标拖拽列宽度时,会报错。请问如何处理?
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-5-29 10:51:00
5#
回复 4楼tangshanman的帖子

你好。
请问在使用HitTestInformation获取行和列的时候,有没有作相应的判断呢?
因为鼠标的点击都会触发这个事件做转换,但是点击到border的区域的时候是无法获取到行列的信息,这种情况下HitTestInfomation.ViewportInfo是null。
所以应该添加相应的判断,排除不必要的影响。(比如if(info.ViewportInfo!=null)这类的条件)
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部