找回密码
 立即注册

QQ登录

只需一步,快速开始

sinmax

注册会员

11

主题

46

帖子

183

积分

注册会员

积分
183

活字格认证

sinmax
注册会员   /  发表于:2012-10-17 15:26  /   查看:11637  /  回复:14
FarPoint.JPG (32.93 KB, 下载次数: 575)

14 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2012-10-17 16:32:00
沙发
回复 1楼sinmax的帖子

如果想通过 pixel 设置列宽和行高,那么可以通过以下:
SSSetRowHeightInPixels 和 SSSetColWidthInPixels 。
回复 使用道具 举报
sinmax
注册会员   /  发表于:2012-10-17 16:57:00
板凳
但我是用ActiveX的OCX控件,没有用DLL。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-10-17 18:28:00
地板
回复 3楼sinmax的帖子

那可以这样设置:
首先设置 :

  1. fpSpread1.UnitType = UnitTypeTwips
复制代码

这样就可以通过像素转换长度了,换算的方法为:1 twips=1/72 pixel
回复 使用道具 举报
sinmax
注册会员   /  发表于:2012-10-18 08:39:00
5#
好的,我试一下,谢谢!
回复 使用道具 举报
sinmax
注册会员   /  发表于:2012-10-18 09:06:00
6#
这样算出来,还是不对啊!!还有其它办法吗?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-10-18 09:21:00
7#
回复 6楼sinmax的帖子

能否把你的代码贴上来看看?
回复 使用道具 举报
sinmax
注册会员   /  发表于:2012-10-18 11:09:00
8#
fpSpread1.UnitType = UnitTypeTwips
fpSpread1.RowHeight[-1]  = 25 * 72;
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-10-18 18:10:00
9#
回复 8楼sinmax的帖子

你好,这个问题正在调查中,明天回复。
在 C# 中转换的代码如下,看是否对楼主有所帮助:

  1.         private void ddToolStripMenuItem_Click(object sender, EventArgs e)
  2.         {
  3.             ss.UnitType = FPSpreadADO.UnitTypeConstants.UnitTypeTwips;
  4.             ss.set_ColWidth(2, TwipsFromPixels(1000));
  5.         }

  6.         private double TwipsFromPixels(int pixels)
  7.         {
  8.             float dpiX, dpiY;
  9.             using (Graphics g = this.CreateGraphics())
  10.             {
  11.                 dpiX = g.DpiX;
  12.                 dpiY = g.DpiY;
  13.             }
  14.             return ((1440 / dpiX) * pixels);
  15.         }
复制代码
回复 使用道具 举报
sinmax
注册会员   /  发表于:2012-10-19 08:59:00
10#
C#的方式,我用不了!!
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部