2011-01-14 53 views
-1

我有一個文本框,我分解爲基於「\ r」Silverlight C# - 如何複製在文本框中單擊的文本行?

我希望有一行文本被點擊放在一個字符串。

舉例來說,如果我點擊下面我文本框中的2號線,我想「第2行」將進入串

一號線
二號線
最後一行

我該怎麼做呢?

+0

你爲什麼不分裂的` 「\ r \ n」`,Windows的新行字符? – JohnB 2011-01-17 18:05:50

回答

2

這很接近,但我建議在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); 
} 
+0

看起來像那裏大部分存在,但它總是返回第[0]行,因爲它沒有代碼來實際收集哪一行實際被點擊,因此它默認爲0. – Sootah 2011-01-14 21:59:40

相關問題