Enter w RichTextBox nie pozwala przeszukać tekstu

2014-02-15 17:27
0

Po wklejeniu tekstu ze schowka do RichTextBox401.Text - RichTextBox401.Text zostaje przeszukiwany - tego co jest wpisane do TextBox3.Text
Problem polega na tym, że gdy wkleje kilka linijek, oddzielonych ENTERami, to wyszukiwanie się nie odbywa....
z kolei pojedyncze wklejone linijki działają prawidłowo....
tu daje filmik, gdyby ktoś nie rozumiał o co mi chodzi:


Dlaczego nie można wyszukiwać w tym tekscie, w ktorym występuje ENTER pomiędzy linijkami?

        Dim szukane As String
        Dim wynik As String
        Dim obszar As String
        obszar = RichTextBox401.Text
        szukane = TextBox3.Text
        If RichTextBox401.Text = My.Computer.Clipboard.GetText() Then
            wynik = InStr(obszar, szukane)
            If wynik And Not szukane = "" Then
                Label102.ForeColor = Color.Green
                Label102.Text = "Znaleziono Słowo Kluczowe!"
                TextBox2.Text = szukane
            Else
                Label102.ForeColor = Color.Red
                Label102.Text = "Wprowadź Słowo Kluczowe!"
            End If

zauwazyłem że jeżeli wszystkie te funkcje dam pod button, to działa wszystko.....
natomiast jeżeli to daje jako "My.Computer.Clipboard.GetText" to wtedy ten problem występuje....

dodanie znacznika <code class="vbnet"> i poprawienie tytułu wątku - fp

edytowany 9x, ostatnio: furious programming, 2014-02-15 22:33
Do VB także masz znaczniki kolorujące składnię - &lt;code=vb&gt; i &lt;code=vbnet&gt; - furious programming 2014-02-15 22:34

Pozostało 580 znaków

2014-02-15 22:44
0

Skoro nie idzie Ci dla całego tekstu to dlaczego nie sprawdzasz osobno dla każdej linii? Przejedź w petli po każdej linii i jeśli znajdziesz słowo - zmodyfikuj komponenty informujące o znalezieniu i zakończ pętlę; Możesz do tego celu wykorzystać funkcję InStr;

Poza tym sprawdź sobie jak zachowuje się funkcja InStr dla przykładowych wartości; Sprawdź, czy w łańcuchu zawierającym znaki CR czy CRLF (a nie żadne Entery...) szukany tekst nie zostanie odnaleziony;

I nazywaj sensownie komponenty, bo patrząc na ich nazwy w podanym kodzie nie wiadomo do czego służą.


edytowany 1x, ostatnio: furious programming, 2014-02-15 22:47

Pozostało 580 znaków

2014-02-16 11:10
0

juz nie mam pomyslow....
ten sam kod po wklejeniu do buttona dziala prawidlowo (szuka w calym richboxie)

    Private Sub Button205_Click_1(sender As Object, e As EventArgs) Handles Button205.Click
        Dim SearchText As String = RichTextBox401.Text
        Dim ctrl, ctrl2 As Control
        For Each ctrl In TabControl1.Controls
            If TypeOf (ctrl) Is TabPage Then
                Dim page As TabPage = ctrl
                For Each ctrl2 In page.Controls
                    If TypeOf (ctrl2) Is TextBox Then
                        Dim box As TextBox = ctrl2
                        Dim pos As Boolean = SearchText.Contains(box.Text)
                        If (pos) Then
                            TextBox2.Text = box.Text
                            TabControl1.SelectedTab = box.Parent
                            Exit Sub
                        End If
                    End If
                Next
            End If
        Next
    End Sub

natomiast po wklejeniu do richboxa, pod My.Computer.Clipboard.GetText() - szuka tylko jezeli niema "ENTERów" w tekscie....

    Private Sub RichTextBox401_TextChanged(sender As Object, e As EventArgs) Handles RichTextBox401.TextChanged

         If Me.RichTextBox401.Text = My.Computer.Clipboard.GetText() Then
            Dim SearchText As String = RichTextBox401.Text
            Dim ctrl, ctrl2 As Control
            For Each ctrl In TabControl1.Controls
                If TypeOf (ctrl) Is TabPage Then
                    Dim page As TabPage = ctrl
                    For Each ctrl2 In page.Controls
                        If TypeOf (ctrl2) Is TextBox Then
                            Dim box As TextBox = ctrl2
                            Dim pos As Boolean = SearchText.Contains(box.Text)
                            If (pos) Then
                                TextBox2.Text = box.Text
                                TabControl1.SelectedTab = box.Parent
                                Exit Sub
                            End If
                        End If
                    Next
                End If
            Next
        End If
    End Sub

próbowalem też z My.Computer.Clipboard.GetText() i contains ale to tez sie nie sprawdza...
a chodzi o to ze chce napisaćprostą funkcję....
JEŚLI ZOSTANIE WKLEJONY TEKST ZE SCHOWKA TO....

edytowany 3x, ostatnio: koxu444, 2014-02-16 12:25

Pozostało 580 znaków

2014-02-16 23:25
0

@koxu444 - jeśli to samo ma się wykonać zarówno po kilnięciu w przycisk i po wklejeniu tekstu ze schowka, to oprogramuj jedynie kliknięcie przycisku, a po wklejeniu tekstu ze schowka wywołaj zdarzenie klinięcia w przycisk; Poza tym:

If Me.RichTextBox401.Text = My.Computer.Clipboard.GetText() Then

co ma określać ten warunek..? Po co w ogóle ten warunek? Przecież Ty nie masz sprawdzać czy przypisanie się powiodło, tylko wkleić tekst do komponentu i go przeszukać; Sprawdzić to sobie możesz czy schowek zawiera jakiś tekst;

Więc wywal ten warunek i pozostaw tylko przypisanie, po którym przeszukaj zawartość komponentu.


Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0