Tworzenie Tablicy TextBox - VB.NET

2014-02-13 13:31
mato999
0

Witam. Dopiero zaczynam programować więc proszę o wyrozumiałość ;)

jezeli treść któregoś z textboxów (z przedzialu textbox3.text - textbox102.text) 
zostanie odnaleziony w richbox401
to
textbox2.text = textbox(szukany w richbox401).text

i kombinuje z kodem w ten sposób...fffffffffffffff.png

co ja robie źle?
bo wywala mi błąd że za dużo warunków dałem =/ a przecież musze porównać każdego textboxa z textboxem2 ;/

Pozostało 580 znaków

2014-02-13 14:04
mato999
0

vvvv.png
to się niby kompiluje ale nie dziala ;/

póki co ręcznie wpisuje textbox2.....chce by go porównano z resztą textboxów (TextBox3.Text - TextBox102.text).....ale cos nie udaje mi sie ;/

źle te tablice tworze?
jak mam dodać istniejące textboxy do tablicy, a następnie się do nich odwolywac? :(

  • vvvv.png (0,01 MB) - ściągnięć: 76

Pozostało 580 znaków

2014-02-13 14:19
0
  1. Tablice po stworzeniu należy wypełnić, bo jest pusta.
  2. Miałeś szukać w richbox401 a zamiast tego porównujesz całość z TextBox2.text
  3. while (i<=102) and (tablica(i).Text<> TextBox2.text)
  4. Wg tego co napisałeś powinno być:
    i=3
    While (i<=102) and (richbox401.Text.IndexOf(tablica(i).Text)<0)
    i=i+1
    End While
    If i<=102
    textbox2.text=tablica(i).Text
    End If

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
edytowany 2x, ostatnio: _13th_Dragon, 2014-02-13 14:27

Pozostało 580 znaków

2014-02-13 14:23
mato999
0

aha...to w tym jest problem...ze tablice są puste....

to w takim razie robie całkiem nie to co potrzeba....
bo chce dodać "już istniejące textboxy" do tablicy a nie tworzyć nowe....
a te istniejące texboxy już mają swoje wartości....

można jakoś dodać istniejące textboxy do tablicy ?

Pozostało 580 znaków

2014-02-13 14:26
0
tablica(3)=textbox3;
tablica(4)=textbox4;
...
tablica(102)=textbox102;

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
edytowany 1x, ostatnio: _13th_Dragon, 2014-02-13 14:27

Pozostało 580 znaków

2014-02-13 14:45
mato999
0
_13th_Dragon napisał(a):
tablica(3)=textbox3;
tablica(4)=textbox4;
...
tablica(102)=textbox102;

czyli aby nie przepisywac wszystkich tablic "ręcznie" to należałoby coś takiego napisać?

        Dim i As Integer
        Dim tablica As TextBox() = New TextBox(102) {}
        i = 2
   While (i<=102) 
         i=i+1
        tablica(i) = textbox(i);
   End While

dobrze to zrobilem? (mialem na celu dodanie wszystkich istneijacych textboxow 3-102 do tablicy)

Pozostało 580 znaków

2014-02-13 17:15
1

Nie czaję coś to narobił ale powinieneś raczej użyć funkcji coś w stylu:

    Private Function FindTextBox(Parent As Control, Name As String, Optional SearchChild As Boolean = True) As TextBox
        Dim ctrl As Control
        FindTextBox = Nothing
        For Each ctrl In Parent.Controls
            If (TypeOf (ctrl) Is TextBox) And (ctrl.Name.Equals(Name) = True) Then
                FindTextBox = ctrl
                Exit Function
            Else
                If (SearchChild = True) Then
                    FindTextBox = FindTextBox(ctrl, Name, SearchChild)
                    If Not IsNothing(FindTextBox) Then
                        Exit Function
                    End If
                End If
            End If
        Next
    End Function

i użycie:

tablica(i) = FindTextBox(Me, "TextBox" & i.ToString)

Poza tym zamiast pętli while i zwiększać i o 1 chyba lepiej użyć for.

EDIT zmieniłem funkcję na lepszą rekurencyjnie szukającą też po kontrolkach potomnych


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, 2014-02-13 17:40

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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