Przeszukiwanie TextBoxów znajdujących się na TabPage

Przeszukiwanie TextBoxów znajdujących się na TabPage
K9
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 9 lat
  • Postów:95
0

W jaki sposob moge przeszukac WSZYSTKIE TextBox3, które znajdują się na kartach TabPage na PageControl1 ?

to ma wyglac tak:

jeżeli słowo z Textbox3.Text znajduje sie w przeszukiwana_linia to.....TabControl1.SelectedTab = box.Parent
gdyby nie UserControl to wystarczyłby taki kod:

Kopiuj
Private Sub szukanie_w_liniach()
        Dim przeszukiwana_linia As String = ListBox1.SelectedItem.ToString
        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 = przeszukiwana_linia.Contains(box.Text)
                        If pos And Not box.Text = "" Then
                            TextBox2.Text = box.Text
                            TabControl1.SelectedTab = box.Parent
                            Exit Sub
                        End If
                    End If
                Next
            End If
        Next

Ale niestety on nie przeszukuje TextBoxow znajdujacych sie na UserControl :(

@kAzek

edytowany 1x, ostatnio: kosmita90he
dam1an
  • Rejestracja:prawie 12 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa
  • Postów:1589
0

Wiesz że skoro to wszystko masz w UserControl to możesz w nim napisać metodę która robi co tam chcesz?

K9
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 9 lat
  • Postów:95
0

wlasnie chodzi o to, że Przeszukiwany tekst znajduje sie na Form1 , natomiast elementy które aplikacja ma szukac w przeszukiwanym tekscie znajdują sie na UserControl1

poza tym mam wiele kart w programie....TabPages również są na Form1...a cała zawartość TabPage'a to już UserControl

mi się zdaje , że jak mam ten kod foreach in Page.Controls to sprawdza tylko TextBoxy...pewnie trzeba jeszcze jakoś do PageControl wejsc i dopiero szukac

edytowany 2x, ostatnio: kosmita90he
KA
  • Rejestracja:ponad 19 lat
  • Ostatnio:2 minuty
  • Lokalizacja:Gorlice
1

Nie wiem już czy dobrze zrozumiałem masz na każdym tab kontrolkę UserControl na której jest TextBox3 i teraz jeżeli w TextBox3 tekst jest częścią (lub całością) tekstu zawartego w zaznaczonej pozycji ListBox to trzeba wybrać tą zakładkę na której jest ten TextBox?

Kopiuj
    Private Sub SelectTabByTextBoxText(TabPage As TabPage, ParentCtrl As Control, TextBoxName As String, SearchText As String)
        If ParentCtrl.HasChildren Then
            For Each Ctrl As Control In ParentCtrl.Controls
                If ((TypeOf Ctrl Is TextBox) And (Ctrl.Name.Equals(TextBoxName)) And (Ctrl.Text.Length > 0) _
                        And (SearchText.Contains(Ctrl.Text))) Then
                    If Not IsNothing(TabPage) Then
                        Dim TabCtrl = CType(TabPage.Parent, TabControl)
                        TabCtrl.SelectedTab = TabPage
                    End If
                    Exit Sub
                End If
                SelectTabByTextBoxText(TabPage, Ctrl, TextBoxName, SearchText)
            Next
        End If
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        For PageIndex As Integer = 0 To TabControl1.TabCount - 1
            SelectTabByTextBoxText(TabControl1.TabPages(PageIndex), TabControl1.TabPages(PageIndex), "TextBox3", ListBox1.SelectedItem.ToString)
        Next
    End Sub

EDIT: Poprawiłem bo się pomyliłem i nie działało :/


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
edytowany 1x, ostatnio: kAzek
K9
dziala ! :D mialbym jeszcze malutką prosbe i dam Ci juz spokoj :D (prawde mowiac to juz 50% programu mi napisales chyba xD)
K9
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 9 lat
  • Postów:95
0

tak, dobrze zrozumiales...
juz dziala wszystko fajnie :)

miałbym jeszcze tylko jedną prosbę..... malutką :)

jeszcze bym chciał aby na tym samym tabpage gdzie znaleziono "slowo" z textboxa3, to obok niego jest textbox2 , chcialbym by cała linijka ListBox1.SelectedItem.ToString wędrowala wlasnie tam, w przypadku jeżeli (ListBox1.SelectedItem.ToString zawiera w sobie textbox3)

sorki ale nie chcialem Od razu tyle tlumaczyc bo za duże zamieszanie by bylo :)
@kAzek

edytowany 4x, ostatnio: kosmita90he
KA
  • Rejestracja:ponad 19 lat
  • Ostatnio:2 minuty
  • Lokalizacja:Gorlice
0

Umiesz w ogóle korzystać z funkcji / procedur? Przecież do zmiany tekstu w TextBox po nazwie kontrolki już miałeś teraz wystarczy niewielka przeróbka na funkcję procedury służącej do zmiany wybranej zakładki i po krzyku.

Kopiuj
    Private Sub SetTextBoxCtrlTextByCtrlName(ParentCtrl As Control, TextBoxName As String, CtrlText As String)
        If ParentCtrl.HasChildren Then
            For Each Ctrl As Control In ParentCtrl.Controls
                If (TypeOf Ctrl Is TextBox) And (Ctrl.Name.Equals(TextBoxName)) Then
                    Ctrl.Text = CtrlText
                    Exit Sub
                End If
                SetTextBoxCtrlTextByCtrlName(Ctrl, TextBoxName, CtrlText)
            Next
        End If
    End Sub

    Private Function SelectTabByTextBoxText(TabPage As TabPage, ParentCtrl As Control, TextBoxName As String, SearchText As String) As Boolean
        SelectTabByTextBoxText = False
        If ParentCtrl.HasChildren Then
            For Each Ctrl As Control In ParentCtrl.Controls
                If ((TypeOf Ctrl Is TextBox) And (Ctrl.Name.Equals(TextBoxName)) And (Ctrl.Text.Length > 0) _
                        And (SearchText.Contains(Ctrl.Text))) Then
                    If Not IsNothing(TabPage) Then
                        Dim TabCtrl = CType(TabPage.Parent, TabControl)
                        TabCtrl.SelectedTab = TabPage
                        SelectTabByTextBoxText = True
                    End If
                    Exit Function
                End If
                SelectTabByTextBoxText = SelectTabByTextBoxText(TabPage, Ctrl, TextBoxName, SearchText)
            Next
        End If
    End Function

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        For PageIndex As Integer = 0 To TabControl1.TabCount - 1
            If SelectTabByTextBoxText(TabControl1.TabPages(PageIndex), TabControl1.TabPages(PageIndex), "TextBox3", ListBox1.SelectedItem.ToString) Then
                SetTextBoxCtrlTextByCtrlName(TabControl1.TabPages(PageIndex), "TextBox2", ListBox1.SelectedItem.ToString)
                Exit Sub
            End If
        Next
    End Sub

Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)