找回密码
 立即注册

QQ登录

只需一步,快速开始

sinmax

注册会员

11

主题

46

帖子

183

积分

注册会员

积分
183

活字格认证

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

14 个回复

正序浏览
iceman
社区贡献组   /  发表于:2012-10-19 16:36:00
15#
回复 使用道具 举报
sinmax
注册会员   /  发表于:2012-10-19 16:15:00
14#
谢谢各位版主们!!:hjyzw::hjyzw::hjyzw::hjyzw::hjyzw::hjyzw::hjyzw::hjyzw::hjyzw::hjyzw::hjyzw::hjyzw::hjyzw::hjyzw::hjyzw::hjyzw::hjyzw::hjyzw::hjyzw::hjyzw::hjyzw::hjyzw::hjyzw::hjyzw::hjyzw::hjyzw::hjyzw::hjyzw::hjyzw::hjyzw:
回复 使用道具 举报
sinmax
注册会员   /  发表于:2012-10-19 16:14:00
13#
private void ddToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ss.UnitType = FPSpreadADO.UnitTypeConstants.UnitTypeTwips;
            ss.set_ColWidth(2, TwipsFromPixels(1000));
        }

        private double TwipsFromPixels(int pixels)
        {
            float dpiX, dpiY;
            using (Graphics g = this.CreateGraphics())
            {
                dpiX = g.DpiX;
                dpiY = g.DpiY;
            }
            return ((1440 / dpiX) * pixels);
        }


终于用这个方法,写出来了!!换成VB的就行了。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-10-19 09:56:00
12#
回复 10楼sinmax的帖子

单位转换:
  1. 1 twip = 1/20 point

  2. 1 point = 1/72 inch

  3. 1 twip = 1/1440 inch
复制代码
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-10-19 09:32:00
11#
回复 10楼sinmax的帖子

pixel 的大小和硬件环境有关,所以需要通过 Screen 来转换 twips 和 pixel。
例如,设置行高为 25 pixel。

  1. fpSpread1.Sheet = 0
  2. fpSpread1.UnitType = UnitTypeTwips
  3. fpSpread1.RowHeight(1) = 25 * Screen.TwipsPerPixelY
复制代码
回复 使用道具 举报
sinmax
注册会员   /  发表于:2012-10-19 08:59:00
10#
C#的方式,我用不了!!
回复 使用道具 举报
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-18 11:09:00
8#
fpSpread1.UnitType = UnitTypeTwips
fpSpread1.RowHeight[-1]  = 25 * 72;
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-10-18 09:21:00
7#
回复 6楼sinmax的帖子

能否把你的代码贴上来看看?
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部