C# 如何在窗口/消息框中显示500字的输出?
在Windows窗体应用程序中,我希望将wordy(500字)输出到窗口/小窗口(而不仅仅是像tools中那样的文本框控件)。例如:C# 如何在窗口/消息框中显示500字的输出?,c#,winforms,C#,Winforms,在Windows窗体应用程序中,我希望将wordy(500字)输出到窗口/小窗口(而不仅仅是像tools中那样的文本框控件)。例如: 我正在尝试执行pkg.pkgs*的输出。这可能会在我的windows窗体应用程序中产生巨大的输出。请给我一个想法。我不想要messagebox.show()。您可以为窗口创建一个重载构造函数,并将冗长的内容传递给该窗口 public class Window1 : Form { public Window1(string wordy) {
我正在尝试执行pkg.pkgs*的输出。这可能会在我的windows窗体应用程序中产生巨大的输出。请给我一个想法。我不想要messagebox.show()。您可以为窗口创建一个重载构造函数,并将冗长的内容传递给该窗口
public class Window1 : Form
{
public Window1(string wordy)
{
textbox.text = wordy;
}
}
你可以把窗口称为
Form wi = new Window1(message);
wi.showdialog();
如果你不能用文本区创建你自己的
MessageBox
,我建议你删掉冗长的文本。我们可以尝试两种模式:
- 在空白处进行修剪,例如,
改为我最喜欢的文字是否将其
,以节省文字我最喜欢的…
- 然而,这并不总是可能/合理的。比如说,如果我们想在
我最喜欢的冗长文本中添加
10个
我们不想离开符号
而是我的…
我最喜欢的…
2/3
。实施:
public static string TrimWordyText(string source, int totalLength = 200) {
if (string.IsNullOrEmpty(source))
return source;
else if (source.Length <= totalLength)
return source;
// let's try trimming on white space (sparing mode)
int index = 0;
for (int i = 0; i <= totalLength; ++i) {
char ch = source[i];
if (char.IsWhiteSpace(ch))
index = i;
}
// can we save at least 2/3 of text by splitting on white space
if (index > totalLength * 2 / 3)
return source.Substring(0, index) + "...";
else
return source.Substring(0, totalLength) + "...";
}
我认为最好的方法是创建一个非常简单的表单,表单上有一个只读文本区域和一个ok/close按钮。然后用它代替messageBox。如果消息对于
MessageBox
太长,请创建自己的对话框。对话框是一种使用ShowDialog
显示的表单。您还可以在表单上放置一些按钮,并为它们设置DialogResult
。然后,他们将关闭表单,返回您为他们设置的对话框result
。只是别忘了在using
块中使用表单。我想关于winforms的问题是表单
而不是窗口
@bashis Yeap我会根据WPF更新它谢谢你。知道了!
// "My favorite..."
myTextBox.Text = TrimWordyText("My favorite wordy text is it", 15);
// "My favorit..."
myTextBox.Text = TrimWordyText("My favorite wordy text is it", 10);