.net - 如何将多行字符串打印到消息框中?

标签 .net vb.net winforms newline messagebox

我正在尝试打印来自客户的“最后收据”,我已将其存储到名为 prevRecpt 的字符串变量中。

我希望能够按下一个按钮(btnLastReceipt),这将在消息框中显示此字符串。

这可能吗?正如我已经尝试过并最终得到的消息框只显示第一行?

        prevRcpt = "--------------------Butlers Cinemas--------------------" &     Environment.NewLine
        prevRcpt = prevRcpt & tbTime.Text & Environment.NewLine
        prevRcpt = prevRcpt + "Operator: " + tbUser.Text & Environment.NewLine
        prevRcpt = prevRcpt + Environment.NewLine & Environment.NewLine + "-------------------------------------------------------"
        prevRcpt = prevRcpt + "Total Spent: £" + tbTotal.Text + Environment.NewLine + Environment.NewLine
        prevRcpt = prevRcpt + shoppingCart.Text + Environment.NewLine
        prevRcpt = "--------------------Butlers Cinemas--------------------" & Environment.NewLine

这是构建字符串的代码。

最佳答案

您是否尝试过在字符串中的任意位置连接 Environment.NewLine

现在我可以看到你的代码,看来你的最后一行应该是这样的:

prevRcpt = prevRcpt & "--------------------Butlers Cinemas--------------------" & Environment.NewLine

话虽这么说,您需要注意,如果字符串很长,消息框的大小可能会超出屏幕范围,因此您可能需要使用 MessageBox 以外的其他内容。如果可能,创建您自己的对话框表单,使其默认大小适合大多数情况,并在其中使用可滚动的文本区域。将 Multiline 属性设置为 True 的只读 TextBox 不仅可以滚动,而且允许最终用户复制剪贴板中的内容。它可能会让用户的体验变得更好。

我还应该提到StringBuilder类和一些常量可以帮助您使代码更加简洁:

Const headerOrFooter As String = "--------------------Butlers Cinemas--------------------"
Const separator As String = "-------------------------------------------------------"

Dim b As New Text.StringBuilder()

b.AppendLine(headerOrFooter)
b.AppendLine(tbTime.Text)
b.AppendFormat("Operator: {0}", tbUser.Text)
b.AppendLine()
b.AppendLine()
b.AppendLine()
b.AppendLine(separator)
b.AppendFormat("Total Spent: £{0}", tbTotal.Text)
b.AppendLine()
b.AppendLine(shoppingCart.Text)
b.AppendLine(headerOrFooter)

prevRcpt = b.ToString()

关于.net - 如何将多行字符串打印到消息框中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22609874/

相关文章:

vb.net - 拆分容器流布局面板或自动调整大小的面板 (VB.NET)

c# - 我在哪里可以免费找到一个不错的 .NET 选项卡控件?

c# - 什么是 Winforms 中的 parking 窗口

c# - 从标记中的对象获取属性

.net - UpdatePanel中的FileUpload控件而不刷新整个页面?

vb.net - 即使在 VB2005 项目中添加 System.Management 引用后,仍未定义 ManagementObjectSearcher

asp.net - ServiceController.start() 和 ServiceController.stop() 抛出异常?

c# - Windows 服务与 Windows 应用程序 - 最佳实践

c# - 从四个 16 位值构建 64 位 int 的最快方法?

c# - 编译后dll命名空间被排除