Winforms MessageBox的形状
问题描述:
我正在寻找一种方法来控制Winforms中简单MessageBox的形状。我想控制传入文本的位置,以便对话框更窄。 Windows似乎希望在包装文本之前尽可能地扩大对话框。有没有简单的方法来控制对话框的最大宽度,而无需诉诸创建自己的自定义表单?Winforms MessageBox的形状
答
您可以在文本中嵌入换行符以强制它在特定点处换行。例如
"message text...\nmore text..."
更新:我发布,认为这是一个win32 API的问题,但我认为原则应该仍然适用。我假设WinForms最终调用MessageBox()。
答
如果您在传递它的字符串消息中抛出自己的换行符,会发生什么情况?我很肯定,如果我记得正确的话,这将工作。
答
这确实只是两种方式(理智的方式)
1)添加换行符到您的字符串自己限制每一行的lenghth。
2)制作自己的表单并使用它而不是messagebox。
答
\ n换行符将为您提供足够的灵活性,然后执行此操作。我使用了很多。例如。如果我发出警告,第一行会给出警告,下一行将给出内部错误信息或适当的进一步信息。如果你不这样做,你会得到一个非常宽的消息框,只有很小的高度!
MessageBox只具有有限的可变性 - 例如。按钮类型和图标。如果你需要更多,然后创建你自己的。然后你可以做各种各样的事情,比如添加网址,帮助按钮等。
这应该是Environment.Newline而不是\ n – Brann 2009-04-08 08:26:26