【问题标题】:Silverlight C# - How to copy line of text that is clicked in textbox?Silverlight C# - 如何复制在文本框中单击的文本行?
【发布时间】:2011-01-14 17:36:55
【问题描述】:

我有一个文本框,我根据“\r”将其分解为一个数组

我想将被点击的文本行放入一个字符串中。

例如,如果我在文本框中单击下面的第 2 行,我希望将“第 2 行”输入到字符串中

第一行
第二行
最后一行

我该怎么做呢?

【问题讨论】:

  • 你为什么不拆分"\r\n",Windows 换行符?

标签: c# .net silverlight silverlight-4.0


【解决方案1】:

这很接近,但我建议在 TextBox.SelectionStart 和 TextBox.SelectionEnd 之间选择文本,而不是您尝试执行的操作。

WPF,但可能是一样的

MainWindow.xaml

<TextBox
  MouseDoubleClick="textBox1_MouseDoubleClick" />

MainWindow.xaml.cs

private void textBox1_MouseDoubleClick(object sender, MouseEventArgs e)
{
  int characterIndex = this.textBox1.SelectionStart;
  string characterIndexSubstring = this.textBox1.Text.Substring(0, characterIndex);
  int lineNumber = characterIndexSubstring.Split(new string[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries).Length;
  string[] lines = textBox1.Text.Split(new string[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
  string clickedOnValue = lines[lineNumber];
  MessageBox.Show(clickedOnValue);
}

【讨论】:

  • 看起来大部分都在那里,但它总是返回 row[0],因为其中没有代码来实际收集实际点击了哪一行,因此它默认为 0。
【解决方案2】:

这并不是一个真正的答案,因为我最终从一个数据网格中抓取了字符串,而我正在用这篇文章中引用的文本框中的数据填充数据。

该解决方案的链接是:Silverlight C# - How to get value of row/cell clicked on in DataGrid?

【讨论】:

  • -1:与您在此问题中要求的完全不同。此答案与您的问题完全无关。
猜你喜欢
  • 1970-01-01
  • 2014-12-19
  • 1970-01-01
  • 2021-11-29
  • 2011-09-17
  • 2010-11-10
  • 2020-06-18
  • 1970-01-01
  • 2011-06-10
相关资源
最近更新 更多