Vb.net 在Printer.Print方法中使用分号(;)

Vb.net 在Printer.Print方法中使用分号(;),vb.net,vb6-migration,Vb.net,Vb6 Migration,我正在将VB3迁移到VB.Net,遇到了一个使用VB3中的Printer对象的打印功能。通过使用Vb.Net power pack,我们还可以访问打印机对象 现在的问题是如何将“;”参数传递给print方法 [VB3中的代码] 尝试使用ControlChars.Tab,如下所示,但不起作用 [VB.Net中的代码] 感谢您的帮助。如果您不想自动换行,请改用 然而,这充其量只能是一个短期的过渡解决方案。兼容性包不是很好的.NET代码,它没有与代码的其余部分进行逻辑集成。相反,从长远来看。它们的工作

我正在将VB3迁移到VB.Net,遇到了一个使用VB3中的Printer对象的打印功能。通过使用Vb.Net power pack,我们还可以访问打印机对象

现在的问题是如何将“;”参数传递给print方法 [VB3中的代码]

尝试使用ControlChars.Tab,如下所示,但不起作用 [VB.Net中的代码]

感谢您的帮助。

如果您不想自动换行,请改用

然而,这充其量只能是一个短期的过渡解决方案。兼容性包不是很好的.NET代码,它没有与代码的其余部分进行逻辑集成。相反,从长远来看。它们的工作原理完全不同,但功能要强大得多,使用起来也只是稍微复杂一点。

如果您不想获得自动换行,请改用


然而,这充其量只能是一个短期的过渡解决方案。兼容性包不是很好的.NET代码,它没有与代码的其余部分进行逻辑集成。相反,从长远来看。它们的工作原理完全不同,但功能要强大得多,使用起来也只是稍微复杂一点。

确实有效。谢谢但不确定Tab(tabcol)在这里的行为为何不同。当我使用Tab(20)时,我希望它将下一个字符的绝对位置设置为20,但它似乎打印了20个空格。换句话说,“TAB”的行为类似于“SPC”(空白)。你能建议一下吗?@Anoop这应该或多或少能起作用,但这些函数在.NET中没有真正的位置,因为它们依赖于旧的硬件接口,而旧的硬件接口已经不存在了,必须进行模拟。我可以想象模拟器不能正常工作。我不能再说了,因为我从未使用过这些函数。这确实有效。谢谢但不确定Tab(tabcol)在这里的行为为何不同。当我使用Tab(20)时,我希望它将下一个字符的绝对位置设置为20,但它似乎打印了20个空格。换句话说,“TAB”的行为类似于“SPC”(空白)。你能建议一下吗?@Anoop这应该或多或少能起作用,但这些函数在.NET中没有真正的位置,因为它们依赖于旧的硬件接口,而旧的硬件接口已经不存在了,必须进行模拟。我可以想象模拟器不能正常工作。我不能再说了,因为我从未使用过这些函数。
Sub Printer_Print (tabcol As Integer, detail As String, crlf As String)
    If crlf = ";" Then
            Printer.Print Tab(tabcol); detail;
    Else
            Printer.Print Tab(tabcol); detail
    End If
End Sub
Private Sub PrinterPrint(ByRef tabcol As Short, ByRef detail As String, ByRef crlf As String)

  If crlf = ";" Then
          objPrinter.Print(TAB(tabcol), detail, ControlChars.Tab)
  Else
          objPrinter.Print(TAB(tabcol), detail)
  End If
End Sub