2010-01-28 6 views
2

comment puis-je obtenir les lignes qui ont du texte sélectionné en eux? Par exemple: alt textPour chaque ligne dans les lignes sélectionnées (vb.net)

Les lignes sélectionnées seraient 1, 2,3 et 4 (0 étant la première ligne)

Comment puis-je obtenir à code comme:

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

Merci

Répondre

2

Prenant littéralement vous, vous devez trouver les numéros de ligne, même si seules parties de la ligne 1 et 4 sont sélectionnés. Procédez comme suit:

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 
+0

FYI - si c'est ce que la question demandait - ces mêmes méthodes sont également disponibles dans le contrôle TextBox standard. –

+0

Merci, j'ai réalisé après avoir demandé que j'avais besoin des numéros de ligne, mais merci pour l'autre réponse s_hewitt –

3

Je pense que vous recherchez la propriété SelectedText. (en C#)

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

(dans ma tentative 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 
Questions connexes