Domanda

come posso ottenere le linee che sono hanno selezionato il testo in loro? Per esempio: alt text

Le linee selezionate sarebbero 1, 2,3 e 4 (0 è la prima riga)

Come posso arrivare a codice come:

For Each line as string(or integer) in textbox1."SelectedLines"
  'Do something here for each line
Next

Grazie

È stato utile?

Soluzione

Prendendo alla lettera, è necessario trovare i numeri di riga, anche se solo alcune parti della linea 1 e 4 sono selezionati. Farlo nel modo seguente:

    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

Altri suggerimenti

Credo che stai cercando per la proprietà SelectedText. (In C #)

foreach(string line in textBox1.SelectedText.Split(new string[] {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries))
{
    //dostuffhere
}

(nel mio tentativo di 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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top