【问题标题】:Windows Forms, 'textbox.Lines' equivalent in Windows Presentation Foundation [duplicate]Windows 窗体,Windows Presentation Foundation 中的“textbox.Lines”等效项 [重复]
【发布时间】:2018-05-05 20:42:58
【问题描述】:

我在 Windows 窗体中使用 WPF 文本框。大部分都在工作。不存在的一件事是'textBox.Lines',我在智能感知中看不到'Lines'。我需要什么选项。

目前的 Windows 窗体 string[] file3 = textBox1.Lines;一个非常简单的方法来获取文本框内容到一个数组。

原因这不是一个重复的问题。这是在询问 WPF 中与 WF 中的等效命令,特别是在谈论数组 []

【问题讨论】:

  • 根据 Johannes 的回答编写一个简单的扩展方法(但使用 List<String>)。你可能真的不需要数组。

标签: c# wpf


【解决方案1】:

您可以使用"\n" 拆分TextBox.Text
使用StringSplitOptions.None 返回所有行,包括空行。

string[] lines = TextBox1.Text.Split(new string[] { "\n" }, StringSplitOptions.None);

StringSplitOptions.RemoveEmptyEntries 仅返回非空行。

string[] lines = TextBox1.Text.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries);

这将为您提供 TextBoxBase.Lines() 返回的相同数组。
当然,如果TextBox1.TextWrapping = TextWrapping.Wrap;TextBox1.TextWrapping = TextWrapping.Wrap;

【讨论】:

  • 似乎 Windows 窗体的 textBox.Lines 将文本框的所有行放入数组中,在 WPF 文本框中不可用。所以我将此标记为答案,因为这是现在将 textBox 文本放入数组的唯一方法。
  • 我没有足够的积分来检查公开注册的答案。
【解决方案2】:

您可以使用这些代码来获取您的收藏:

StringCollection lines = new StringCollection();
int lineCount = textBox.LineCount;

for (int line = 0; line < lineCount; line++)
    lines.Add(textBox.GetLineText(line));

【讨论】:

  • 当前使用的是string[] file3 = textBox1.Lines;与行数无关
  • 更新了我的答案
  • 对不起,我不明白。那怎么给我一个数组?
猜你喜欢
  • 2010-09-15
  • 2011-10-04
  • 1970-01-01
  • 2014-04-13
  • 1970-01-01
  • 1970-01-01
  • 2011-09-05
  • 1970-01-01
  • 2012-10-17
相关资源
最近更新 更多