Para cada linha em linhas selecionadas (vb.net)
Pergunta
Como posso obter as linhas que são selecionadas texto nelas? Por exemplo:
As linhas selecionadas seriam 1, 2,3 e 4 (0 sendo a primeira linha)
Como posso codificar como:
For Each line as string(or integer) in textbox1."SelectedLines"
'Do something here for each line
Next
Obrigado
Solução
Levando você literalmente, você precisa encontrar os números de linha, mesmo que apenas partes das linhas 1 e 4 sejam selecionadas. Faça isso da seguinte maneira:
If RichTextBox1.SelectionLength > 0 Then
Dim firstLine As Integer = RichTextBox1.GetLineFromCharIndex(RichTextBox1.SelectionStart)
Dim lastLine As Integer = RichTextBox1.GetLineFromCharIndex(RichTextBox1.SelectionStart + RichTextBox1.SelectionLength)
For line As Integer = firstLine To lastLine
Dim txt = RichTextBox1.Lines(line)
' do something...
Next
End If
Outras dicas
Eu acho que você está procurando a propriedade SelectedText. (em C#)
foreach(string line in textBox1.SelectedText.Split(new string[] {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries))
{
//dostuffhere
}
(Na minha tentativa de VB)
Dim splitter(1) As String
splitter(0) = Environment.NewLine
For Each y As String In TextBox1.SelectedText.Split(splitter, StringSplitOptions.RemoveEmptyEntries)
//do stuff here
Next
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow