2008-09-19 58 views
1

我正在寻找一种方法来控制Winforms中简单MessageBox的形状。我想控制传入文本的位置,以便对话框更窄。 Windows似乎希望在包装文本之前尽可能地扩大对话框。有没有简单的方法来控制对话框的最大宽度,而无需诉诸创建自己的自定义表单?Winforms MessageBox的形状

回答

4

您可以在文本中嵌入换行符以强制它在特定点处换行。例如

"message text...\nmore text..." 

更新:我发布,认为这是一个win32 API的问题,但我认为原则应该仍然适用。我假设WinForms最终调用MessageBox()。

+0

这应该是Environment.Newline而不是\ n – Brann 2009-04-08 08:26:26

0

如果您在传递它的字符串消息中抛出自己的换行符,会发生什么情况?我很肯定,如果我记得正确的话,这将工作。

0

This,或者创建自己的表单并使用它。

1

这确实只是两种方式(理智的方式)

1)添加换行符到您的字符串自己限制每一行的lenghth。

2)制作自己的表单并使用它而不是messagebox。

0

\ n换行符将为您提供足够的灵活性,然后执行此操作。我使用了很多。例如。如果我发出警告,第一行会给出警告,下一行将给出内部错误信息或适当的进一步信息。如果你不这样做,你会得到一个非常宽的消息框,只有很小的高度!

MessageBox只具有有限的可变性 - 例如。按钮类型和图标。如果你需要更多,然后创建你自己的。然后你可以做各种各样的事情,比如添加网址,帮助按钮等。