3000 textboxen de zelfde eigenschappen

Status
Niet open voor verdere reacties.

tierens

Gebruiker
Lid geworden
2 feb 2012
Berichten
37
Hoi

kan er iemand de volgende code (in knipsel) vereenvoudigen?
De bedoeling is om ipv 3 textboxen, 3000 textboxen te maken.
Iedere textbox heeft dezelfde eigenschap, daarom denk ik dat het eenvoudiger kan...

Dank op voorhand!

Knipsel.JPG
 
3000 !?!? :eek:

Waar wil je die instoppen dan? Dat past toch nooit in een Windows Form??
 
Kan je een windows form niet laten scrollen?
Heb ik meteen nog een probleem dan! :confused:
Ik wou namelijk een grote overzichts/invul-lijst maken...
 
Plaats een Panel op je form, en laat deze alle ruimte innemen (via Dock property). Vervolgens plaats je je controls. Als er controls buiten het zichtbare deel van de panel vallen, wordt er automatisch een verticale scrollbar zichtbaar. Mogelijk moet je een property instellen als de scrollbar niet verschijnt, Scrollbars Visible of zoiets.

Maar 3000 textboxen is inderdaad wel veel. Ik weet zeker dat wat jij probeert te bereiken makkelijker kan.
 
Laatst bewerkt:
Een flowlayoutpanel ga ik gebruiken met ingeschakelde autoscroll, maar dan blijft m'n eerste vraag... :)

Tenzij iemand een betere tip heeft om zoiets te maken?
 
Laatst bewerkt:
Probeer het eens zo:

Code:
Private Sub SetBackColor()
    Dim TB As control
    
    For Each TB In Form1.Controls
        If TypeName(TB) = "TextBox" Then
            TB.BackColor = Color.Yellow
        End If
    Next
End Sub
 
Laatst bewerkt:
Oei, al ingewikkeld voor mij!
Ik heb de code er ingezet, maar krijg een fout op "For Each TB in Form1.Controls"
Waarschijnlijk moet er nu nog ergens een commando bij dat het dubbelklikken registreerd op elke textbox?
 
Volgens mij moet het zo, omdat hij gebruik maakt van een FlowLayoutPanel:

Code:
Private Sub SetBackColor()
    Dim TB As control
    
    For Each TB In [B]FlowLayoutPanel1[/B].Controls
        If [B]TypeOf(TB) Is TextBox[/B] Then
            TB.BackColor = Color.Yellow 'Een voorbeeld. Elke property kun je hier opgeven en alle 3000 textboxen erven ze.
        End If
    Next
End Sub

Let wel op dat het hier om een methode (Subroutine) gaat. Je zult deze moeten aanroepen om hem te laten uitvoeren. Dat kun je doen door de naam van de sub (SetBackColor) in het Form_Load sub te plaatsen.
 
Laatst bewerkt:
Kan je niet beter een DataGrid gebruiken?
 
Ik ga DataGrid eens testen... :thumb:

bij de andere code blijf ik dezelfde fout hebben. :confused:
 
@MatthiWare: Natuurlijk. Alleen met 3000 TextBoxen gaat het toch nergens meer over? :confused:
Dan beter een DataGrid.
 
Ik zet de status opgelost, maar ben wel nog opzoek hoe je de textboxen in de datagridview kan aanklikken... als ik het niet vind, zet een nieuwe tread....

DANK!!
 
Laatst bewerkt:
Kan aanklikken en dan.. ?
Wat moet er daarna gebeuren?
 
Eigenlijk bij dubbelklikken, moet die bepaalde celachtergrond geel kleuren. En bij nogmaals dubbelklikken terug wit.

Maar ik ben kortbij want ik heb al dit: :)
Code:
   Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
        Dim i, j As Integer
        i = e.rowIndex
        j = e.columnIndex
        DataGridView1.Item(j, i).Style.BackColor = Color.Yellow
    End Sub
 
Laatst bewerkt:
Dat is niet zo moeilijk:

Code:
    Private Sub DataGridView1_CellDoubleClick(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick

        Dim i, j As Integer
        i = e.RowIndex
        j = e.ColumnIndex

        If DataGridView1.Item(j, i).Style.BackColor = Color.Empty _
            Then DataGridView1.Item(j, i).Style.BackColor = Color.Yellow _
            Else DataGridView1.Item(j, i).Style.BackColor = Color.Empty


    End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan