我在c#window-base应用程序中有多行文本框。如果用户单击文本框,我想获取所选行的值。请指导我,以便我能够做到。
抱歉我的英语不好。
答案 0 :(得分:4)
您可以尝试以下方式:
// Get selected character.
int charIndex = textbox.SelectionStart;
// Get line index from selected character.
int lineIndex = textbox.GetLineFromCharIndex(charIndex);
// Get line.
string line = textbox.Lines[lineIndex];
答案 1 :(得分:2)
我希望你的意思是列表框?
listBox.SelectedItem gives a ListItem
然后您可以从那里获取文本或值
答案 2 :(得分:1)
如果是启用了多行的文本框,则可以使用Lines
属性。
答案 3 :(得分:1)
非常简短:
int sel = this.textBox1.SelectionStart;
string text = this.textBox1.Text;
int selstart = 0;
int selend = 0;
int i = 0;
for (i = sel; i > 0; i--)
if (text[i] == '\n')
break;
selstart = i;
for (i = sel; i < text.Length; i++)
if (text[i] == '\n')
break;
selend = i;
string line = text.Substring(selstart, selend - selstart);
'line'是您指向的行。
编辑:Fara发布了更好的解决方案。