Diskuze: Kontrola velkeho mnozstva textboxov

C# .NET .NET (C# a Visual Basic) Kontrola velkeho mnozstva textboxov American English version English version

Avatar
Miroslav Holubek:

Ahojte, chcel by som sa spytat ako mozem skontrolovat dajme tomu 30 textboxov v programe tak, aby som nemusel vypisovat pomienku pre kazdy zvlast... proste nejake rychlejsie a elegantnejsie riesenie
pisem vo VB dik

 
Odpovědět 6.2.2014 10:24
Avatar
Odpovídá na Miroslav Holubek
Michal Žůrek (misaz):

Projdi si kolekci Controls, tam jsou všechny prvky, ověř si že se jedná o textBox a pak ho zpracuj.

Nahoru Odpovědět 6.2.2014 10:40
Nesnáším {}, proto se jim vyhýbám.
Avatar
Miroslav Holubek:

vdaka, nieco som nacmaral a funguje to, aj si niesom isty spravnostou mojho riesenia :D prilozim kod

For i = 0 To Me.Controls.Count - 1
    Dim xType As String = Me.Controls.Item(i).GetType.Name
    If xType = "TextBox" Then
        Dim xName As TextBox = Me.Controls.Item(i)
        If xName.Text = "" Then
            MsgBox(xName.Name & " je prazdne")
        End If
    End If
Next
 
Nahoru Odpovědět 6.2.2014 11:15
Avatar
hanpari
Redaktor
Avatar
hanpari:

Tohle by mělo fungovat, jen nevím, co se stane, kdyby ten control neměl vlastnost text. V c# bych věděl, že po && se nebude další podmínka kontrolovat.

For Each c As Control In Me.Controls
        If TypeOf(c) Is TextBox  And c.Text="" Then
                MsgBox("Prazdne")
        End If

Next
 
Nahoru Odpovědět  +1 6.2.2014 12:10
Avatar
Miroslav Holubek:

vdaka, este lepsie riesenie :D len este mam taky problem, ze ja nechcem kontrolovat vsetky textboxy, takze to budem musiet upravit ale s tym su uz hadam poradim :)

 
Nahoru Odpovědět 6.2.2014 12:14
Avatar
hanpari
Redaktor
Avatar
hanpari:

Tak využij vlastnost Tag. Nastav ji na určitou hodnotu u těch textboxů, které chceš kontrolovat, a pak jen pracuj s těmi, které ji mají.

Tím pádem nemusíš ani kontrolovat, zda jde o textbox, ale o prvek, který má Tag nastaveny na tu hodnotu.

 
Nahoru Odpovědět 6.2.2014 12:34
Avatar
Miroslav Holubek:

Super tak uz to mam presne tak ako chcem, velka vdaka vam obom :)

 
Nahoru Odpovědět 6.2.2014 12:40
Avatar
hanpari
Redaktor
Avatar
 
Nahoru Odpovědět  +1 6.2.2014 12:51
Avatar
Michal Štěpánek:

Položky na formu mají vlastnost CausesValidation (musí nebo nemusíbýt vyplněny). U těch, které kontrolovat nechceš, nastavíš tuto vlastnost na False.

For Each tb In Me.Controls.OfType(Of TextBox)()
            tb.BackColor = Color.White
            If tb.CausesValidation = True And tb.Text = "" Then
                tb.BackColor = Color.Pink

            End If
        Next
Nahoru Odpovědět 24.2.2014 0:39
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.