【问题标题】:VB.NET Name 'vbPixels' is not declared and Name 'vbTwips' is not declared未声明 VB.NET 名称“vbPixels”且未声明名称“vbTwips”
【发布时间】:2014-01-07 22:26:17
【问题描述】:

我有一些从 VB6 转换为 .NET 的代码,我收到错误 Name 'vbPixels' is not declared 和 Name 'vbTwips' is not declared。这在 VB6 中运行良好。

代码如下:

.Width = o.ScaleX(x, vbPixels, vbTwips)

.NET 中是否有办法做与 VB6 中相同的事情?

【问题讨论】:

    标签: vb.net visual-studio-2008 vb6 upgrade vb6-migration


    【解决方案1】:

    有意不向 VB.NET 添加 vbPixels 和 vbTwips。它迫使您处理位置和大小不再​​以 twips 表示的事实,仅以像素表示。您必须同样转换您的代码。

    这里应该很简单,因为“.Width”已经使用像素作为单位。因此:

      .Width = x
    

    【讨论】:

    • 哇.. 信息量很大。那确实消除了错误。感谢您的帮助。
    【解决方案2】:

    查看 VB Power Pack (Microsoft.VisualBasic.PowerPacks.Vs.dll),which contains these constants:

    Imports Microsoft.VisualBasic.PowerPacks.Printing.Compatibility.VB6
    
    .Width = o.ScaleX(x, ScaleModeConstants.vbPixels, ScaleModeConstants.vbTwips)
    

    【讨论】:

    • 我认为你的答案会起作用,我只需要调整它。我在文件顶部添加了导入并收到此警告:警告 14 Namespace or type specified in the Imports 'Microsoft.VisualBasic.PowerPacks.Printing.Compatibility.VB6' does not contain any public member or can be found.确保命名空间或类型已定义并包含至少一个公共成员。
    • 然后智能感知要我将导入更改为:Microsoft.VisualBasic.Compatibility.VB6