Cijfers sorteren in VB.net

Status
Niet open voor verdere reacties.
Ok, klik in de solution explorer op "Show all files". Druk dan op het plusje links naast "Form1". Dubbelklik op "Form1.Designer.vb".

Zoek dan naar dit stukje code:
Code:
'
'Panel1
'

Daaronder voeg je dit toe voor al je textboxen:
Code:
Me.Panel1.Controls.Add(Me.TextBox)

Open dan je designer weer en kijk of het er niet opeens heel raar uit ziet...... :P

Dat zou moeten werken. Succes!:thumb:
 
Hier trouwens mijn code, daarmee kun je ook andere controls in je panel hebben:

[cpp]Dim getallen As Integer() = {3, 6, 5, 9, 1, 3}
Array.Sort(getallen)

Dim teller As Integer = 0

For Each ctrl As TextBox In Panel1.Controls
If getallen.Count = teller Then Exit For
ctrl.Text = getallen(teller)
teller += 1
Next[/cpp]

Waarom trouwens geen ListBox ? Dat is veel makkelijker ;)
 
Ik krijg nog steeds dezelfde error: "Index 0 is out of range".

Edit: Zit er een groot verschil tussen een listbox en een listview? Ik dacht dat het op hetzelfde neer komt :)

Edit2: Ogenblikje .., volgens mij weet ik waar ongeveer de fout zit...

Edit3: Toch niet, dacht dat ik Me.Panel1.Controls.Add(Me.TextBoxX) verkeerd had neergezet.

Echter, als ik nu op de button klik die aangeeft hoeveel er in panel1 staat, krijg ik het getal 2 te zien.
 
Laatst bewerkt:
Maak eens een nieuwe Panel, en probeer het daarmee.
 
Nieuwe Panel heeft niet geholpen, zie de edits aan mijn vorige post voor meer info :P

Edit: Krijg een andere error dan net:
Unable to cast object of type 'System.Windows.Forms.ListView' to type 'System.Windows.Forms.TextBox'
 
Laatst bewerkt:
Plaats eens (een deel van) de code uit Form1.designer.vb hier, dan kijk(en) ik (/wij) daar nog even naar....

Dit begint echt een raadsel te worden....:confused:
 
Edit: Zit er een groot verschil tussen een listbox en een listview? Ik dacht dat het op hetzelfde neer komt :)

Nee, 't zijn verschillende controls. Maar in dit geval kun je het beste een ListBox gebruiken i.p.v. al die TextBoxen.

[CPP]Dim getallen As Integer() = {3, 6, 5, 9, 1, 3}
Array.Sort(getallen)
For Each item As Integer In getallen
ListBox1.Items.Add(item.ToString())
Next[/CPP]
 
Code:
Public Class Form1

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        Application.Exit()
    End Sub

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        MsgBox(Panel1.Controls.Count)

    End Sub

    Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
        Dim getallen As Integer() = {3, 6, 5, 9, 1, 3}
        Array.Sort(getallen)

        Dim teller As Integer = 0

        For i As Integer = 0 To getallen.Length - 1 Step 1
            CType(Panel1.Controls(teller), TextBox).Text = getallen(i)
            teller += 1

            If teller = Panel1.Controls.Count Or teller > Panel1.Controls.Count Then
                Exit For
            End If
        Next
    End Sub

    Private Sub Panel1_Paint(sender As System.Object, e As System.Windows.Forms.PaintEventArgs)

    End Sub
End Class
 
Dacht dat je die andere bedoelde :D

Code:
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Form1
    Inherits System.Windows.Forms.Form

    'Form overrides dispose to clean up the component list.
    <System.Diagnostics.DebuggerNonUserCode()> _
    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
        Try
            If disposing AndAlso components IsNot Nothing Then
                components.Dispose()
            End If
        Finally
            MyBase.Dispose(disposing)
        End Try
    End Sub

    'Required by the Windows Form Designer
    Private components As System.ComponentModel.IContainer

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer.  
    'Do not modify it using the code editor.
    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
        Me.Button1 = New System.Windows.Forms.Button()
        Me.TextBox1 = New System.Windows.Forms.TextBox()
        Me.TextBox2 = New System.Windows.Forms.TextBox()
        Me.TextBox3 = New System.Windows.Forms.TextBox()
        Me.TextBox4 = New System.Windows.Forms.TextBox()
        Me.TextBox5 = New System.Windows.Forms.TextBox()
        Me.TextBox6 = New System.Windows.Forms.TextBox()
        Me.TextBox7 = New System.Windows.Forms.TextBox()
        Me.TextBox8 = New System.Windows.Forms.TextBox()
        Me.TextBox9 = New System.Windows.Forms.TextBox()
        Me.TextBox10 = New System.Windows.Forms.TextBox()
        Me.Label1 = New System.Windows.Forms.Label()
        Me.Button2 = New System.Windows.Forms.Button()
        Me.Button3 = New System.Windows.Forms.Button()
        Me.Panel1 = New System.Windows.Forms.Panel()
        Me.ListBox1 = New System.Windows.Forms.ListBox()
        Me.ListView1 = New System.Windows.Forms.ListView()
        Me.Panel1.SuspendLayout()
        Me.SuspendLayout()
        '
        'Button1
        '
        Me.Button1.Location = New System.Drawing.Point(240, 88)
        Me.Button1.Name = "Button1"
        Me.Button1.Size = New System.Drawing.Size(75, 23)
        Me.Button1.TabIndex = 3
        Me.Button1.Text = "Sorteer!"
        Me.Button1.UseVisualStyleBackColor = True
        '
        'TextBox1
        '
        Me.TextBox1.Location = New System.Drawing.Point(12, 52)
        Me.TextBox1.Name = "TextBox1"
        Me.TextBox1.Size = New System.Drawing.Size(100, 20)
        Me.TextBox1.TabIndex = 4
        '
        'TextBox2
        '
        Me.TextBox2.Location = New System.Drawing.Point(12, 78)
        Me.TextBox2.Name = "TextBox2"
        Me.TextBox2.Size = New System.Drawing.Size(100, 20)
        Me.TextBox2.TabIndex = 5
        '
        'TextBox3
        '
        Me.TextBox3.Location = New System.Drawing.Point(12, 104)
        Me.TextBox3.Name = "TextBox3"
        Me.TextBox3.Size = New System.Drawing.Size(100, 20)
        Me.TextBox3.TabIndex = 6
        '
        'TextBox4
        '
        Me.TextBox4.Location = New System.Drawing.Point(12, 130)
        Me.TextBox4.Name = "TextBox4"
        Me.TextBox4.Size = New System.Drawing.Size(100, 20)
        Me.TextBox4.TabIndex = 7
        '
        'TextBox5
        '
        Me.TextBox5.Location = New System.Drawing.Point(12, 156)
        Me.TextBox5.Name = "TextBox5"
        Me.TextBox5.Size = New System.Drawing.Size(100, 20)
        Me.TextBox5.TabIndex = 8
        '
        'TextBox6
        '
        Me.TextBox6.Location = New System.Drawing.Point(118, 52)
        Me.TextBox6.Name = "TextBox6"
        Me.TextBox6.Size = New System.Drawing.Size(100, 20)
        Me.TextBox6.TabIndex = 9
        '
        'TextBox7
        '
        Me.TextBox7.Location = New System.Drawing.Point(118, 78)
        Me.TextBox7.Name = "TextBox7"
        Me.TextBox7.Size = New System.Drawing.Size(100, 20)
        Me.TextBox7.TabIndex = 10
        '
        'TextBox8
        '
        Me.TextBox8.Location = New System.Drawing.Point(118, 104)
        Me.TextBox8.Name = "TextBox8"
        Me.TextBox8.Size = New System.Drawing.Size(100, 20)
        Me.TextBox8.TabIndex = 11
        '
        'TextBox9
        '
        Me.TextBox9.Location = New System.Drawing.Point(118, 130)
        Me.TextBox9.Name = "TextBox9"
        Me.TextBox9.Size = New System.Drawing.Size(100, 20)
        Me.TextBox9.TabIndex = 12
        '
        'TextBox10
        '
        Me.TextBox10.Location = New System.Drawing.Point(118, 156)
        Me.TextBox10.Name = "TextBox10"
        Me.TextBox10.Size = New System.Drawing.Size(100, 20)
        Me.TextBox10.TabIndex = 13
        '
        'Label1
        '
        Me.Label1.AutoSize = True
        Me.Label1.Location = New System.Drawing.Point(12, 10)
        Me.Label1.Name = "Label1"
        Me.Label1.Size = New System.Drawing.Size(270, 26)
        Me.Label1.TabIndex = 14
        Me.Label1.Text = "Voer in deze 10 tekstvakken 10 willekeurige getallen in " & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "tussen 1 en 10"
        '
        'Button2
        '
        Me.Button2.Location = New System.Drawing.Point(240, 117)
        Me.Button2.Name = "Button2"
        Me.Button2.Size = New System.Drawing.Size(75, 23)
        Me.Button2.TabIndex = 15
        Me.Button2.Text = "Afsluiten"
        Me.Button2.UseVisualStyleBackColor = True
        '
        'Button3
        '
        Me.Button3.Location = New System.Drawing.Point(224, 285)
        Me.Button3.Name = "Button3"
        Me.Button3.Size = New System.Drawing.Size(75, 23)
        Me.Button3.TabIndex = 17
        Me.Button3.Text = "Panel"
        Me.Button3.UseVisualStyleBackColor = True
        '
        'Panel1
        '
        Me.Panel1.Controls.Add(Me.ListView1)
        Me.Panel1.Controls.Add(Me.ListBox1)
        Me.Panel1.Dock = System.Windows.Forms.DockStyle.Fill
        Me.Panel1.Location = New System.Drawing.Point(0, 0)
        Me.Panel1.Name = "Panel1"
        Me.Panel1.Size = New System.Drawing.Size(536, 363)
        Me.Panel1.TabIndex = 18
        '
        'ListBox1
        '
        Me.ListBox1.FormattingEnabled = True
        Me.ListBox1.Location = New System.Drawing.Point(332, 78)
        Me.ListBox1.Name = "ListBox1"
        Me.ListBox1.Size = New System.Drawing.Size(120, 95)
        Me.ListBox1.TabIndex = 0
        '
        'ListView1
        '
        Me.ListView1.Location = New System.Drawing.Point(332, 211)
        Me.ListView1.Name = "ListView1"
        Me.ListView1.Size = New System.Drawing.Size(121, 97)
        Me.ListView1.TabIndex = 1
        Me.ListView1.UseCompatibleStateImageBehavior = False
        '
        'Form1
        '
        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
        Me.ClientSize = New System.Drawing.Size(536, 363)
        Me.Controls.Add(Me.Button3)
        Me.Controls.Add(Me.Button2)
        Me.Controls.Add(Me.Label1)
        Me.Controls.Add(Me.TextBox10)
        Me.Controls.Add(Me.TextBox9)
        Me.Controls.Add(Me.TextBox8)
        Me.Controls.Add(Me.TextBox7)
        Me.Controls.Add(Me.TextBox6)
        Me.Controls.Add(Me.TextBox5)
        Me.Controls.Add(Me.TextBox4)
        Me.Controls.Add(Me.TextBox3)
        Me.Controls.Add(Me.TextBox2)
        Me.Controls.Add(Me.TextBox1)
        Me.Controls.Add(Me.Button1)
        Me.Controls.Add(Me.Panel1)
        Me.Name = "Form1"
        Me.Text = "Form1"
        Me.Panel1.ResumeLayout(False)
        Me.ResumeLayout(False)
        Me.PerformLayout()

    End Sub
    Friend WithEvents Button1 As System.Windows.Forms.Button
    Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
    Friend WithEvents TextBox2 As System.Windows.Forms.TextBox
    Friend WithEvents TextBox3 As System.Windows.Forms.TextBox
    Friend WithEvents TextBox4 As System.Windows.Forms.TextBox
    Friend WithEvents TextBox5 As System.Windows.Forms.TextBox
    Friend WithEvents TextBox6 As System.Windows.Forms.TextBox
    Friend WithEvents TextBox7 As System.Windows.Forms.TextBox
    Friend WithEvents TextBox8 As System.Windows.Forms.TextBox
    Friend WithEvents TextBox9 As System.Windows.Forms.TextBox
    Friend WithEvents TextBox10 As System.Windows.Forms.TextBox
    Friend WithEvents Label1 As System.Windows.Forms.Label
    Friend WithEvents Button2 As System.Windows.Forms.Button
    Friend WithEvents Button3 As System.Windows.Forms.Button
    Friend WithEvents Panel1 As System.Windows.Forms.Panel
    Friend WithEvents ListView1 As System.Windows.Forms.ListView
    Friend WithEvents ListBox1 As System.Windows.Forms.ListBox

End Class
 
Zoals je in de code kan zien, staan de TextBoxes níet in het Panel, maar in het form zelf ;)

Al naar mijn ListBox-suggestie gekeken? :)
 
Haal dit weg:
Code:
        Me.Controls.Add(Me.TextBox10)
        Me.Controls.Add(Me.TextBox9)
        Me.Controls.Add(Me.TextBox8)
        Me.Controls.Add(Me.TextBox7)
        Me.Controls.Add(Me.TextBox6)
        Me.Controls.Add(Me.TextBox5)
        Me.Controls.Add(Me.TextBox4)
        Me.Controls.Add(Me.TextBox3)
        Me.Controls.Add(Me.TextBox2)
        Me.Controls.Add(Me.TextBox1)

En plak dit erin:
Code:
        Me.Panel1.Controls.Add(Me.TextBox10)
        Me.Panel1.Controls.Add(Me.TextBox9)
        Me.Panel1.Controls.Add(Me.TextBox8)
        Me.Panel1.Controls.Add(Me.TextBox7)
        Me.Panel1.Controls.Add(Me.TextBox6)
        Me.Panel1.Controls.Add(Me.TextBox5)
        Me.Panel1.Controls.Add(Me.TextBox4)
        Me.Panel1.Controls.Add(Me.TextBox3)
        Me.Panel1.Controls.Add(Me.TextBox2)
        Me.Panel1.Controls.Add(Me.TextBox1)

Op de plaats waar je het eerste hebt verwijdert.

Dan nog opslaan en opnieuw proberen.
 
@JoZ1 Is een listview makkelijker dan een listbox?

@MartinJM Ik heb gedaan wat je vroeg, en nu is mijn Listbox weg en de knop met de tekst "Sorteer" ook (button1 en listbox1)

Misschien eens helemaal opnieuw beginnen?? Dus een geheel nieuw project maken..., met een listview.
 
Een ListBox is véél makkelijker en ook handiger om nu te gebruiken ;)

Een ListView heeft meerdere columns (in de detail-view)
 
Dan bij deze de overstap naar een Listbox :P Volgensmij haalde ik die twee dingen door elkaar...

Edit: Het spijt me heel erg, maar ik moet nu gaan eten en ben daarna de hele avond weg. Heel erg bedankt voor de hulp die jullie me vandaag hebben gegeven, jammer dat het nog niet werkt.

Scandax
 
undock de panel en maak de panel groot genoeg zodat alle textboxen zichtbaar zijn. Vergroot eventueel de form zodat er nog ruimte is voor je buttons en je listbox.

Smakelijk eten!
 
Edit: Het spijt me heel erg, maar ik moet nu gaan eten en ben daarna de hele avond weg. Heel erg bedankt voor de hulp die jullie me vandaag hebben gegeven, jammer dat het nog niet werkt.

Maakt niet uit, joh :P
We hebben toch de tijd?
 
Heb het (alweer//nog steeds) enorm druk, volgende week proefwerkweek. Dat betekend dat ik na 1 of 2 proefwerken klaar ben en na het leren aan dit project(je) verder kan werken. Dus vanaf maandag heb ik weer alle tijd, volgende week vrijdag moet het al worden ingeleverd :S.

Nogmaals dank voor de hulp,
Scandax
 
Heb net VB.net weer opgestart. Kan ik niet het beste eens een heel nieuw, leeg project aanmaken? En dan op de manier zoals JoZ1 het zei met een Listbox, i.p.v. een Listview :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan