如题 VB里有个Form1.ScaleMode = 5  C#没有这个属性,我怎么改度量单位?想改成英寸 ^_^

解决方案 »

  1.   

    没办法。就是VB.NET也不可以。虽然VB是可以
      

  2.   

    为什么要改?
    Graphics的单位可以改
      

  3.   

    在 Visual Basic 2005 中表示窗体和控件坐标的方法与 Visual Basic 6.0 中不同;用于调整窗体大小和移动窗体的方法也不同。概念差异
    在 Visual Basic 6.0 中,窗体和控件的坐标用缇表示。在 Visual Basic 2005 中,坐标用像素表示。 Height 和 Width 属性
    在 Visual Basic 6.0 中,Height 和 Width 属性用于更改窗体或控件的大小。Visual Basic 2005 提供了一个 Size 属性,使您可以通过一个步骤同时更改高度和宽度。Move 方法
    Visual Basic 6.0 使用 Move 方法在运行时更改窗体或控件的位置。在 Visual Basic 2005 中,Move 由 SetBounds 方法取代,并且坐标用像素表示。ScaleMode 属性
    Visual Basic 6.0 还提供了一个 ScaleMode 属性,可以使用该属性定义一个不同的坐标系统。Visual Basic 2005 只支持单个坐标系统(以像素表示)。Visual Basic 2005 中不支持 ScaleMode 及其相关属性和方法(Scale、ScaleHeight、ScaleLeft、ScaleTop、ScaleWidth、ScaleX 和 ScaleY)。有关更多信息,请参见不支持 ScaleMode。
      

  4.   

    能不用当然不想用了用到一个API     LPtoDP有没有别有解决方法?
      

  5.   

    如果不支持的话,
    ScaleWidth应该用什么代替?
      

  6.   

    private void Form1_Paint(object sender, PaintEventArgs e)
            {
                Graphics g = e.Graphics;
                g.PageUnit = GraphicsUnit.Millimeter;
            }如果你是画图的话可以用上面这种方法该,默认是分辨率,上面改为毫米。
      

  7.   

    GraphicsUnit类里面有几种不同的度量单位属性 你自己选择吧这是一个很浅的GDI+的问题 不会没人不知道吧...
      

  8.   

    C#里默认的是font,你要改成英寸的只需要在form的AutoScaleMode的属性里选择Dpi即可。
      

  9.   

    @_@  我找了 没有只有一个AutoScale  还是设置成BOOL
      

  10.   

    换个方式 问  VB原句是:
    Form1.ScaleMode = 5 ptArray(0).x = (ScaleWidth * 1000 / 2) - 1000   '1000 HIENGLISH = 1 inchScaleWidth * 1000 得到的是什么ptArray(0).x 最后得到的是什么