Announcement

Collapse
No announcement yet.

Umstieg VB6 -> VB.net und Control-Array

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Umstieg VB6 -> VB.net und Control-Array

    Bei VB6 konnte in Abh. vom Anwender die Anzahl der Controls ( z.B. FlexGrid ) beim Programmstart
    abgefragt und mit
    for i=1 to WunschZahl
    Load Control1(i)
    next
    erzeugt werden.
    Wenn die Wunschzahl max 40 sein kann, muß ich ich bei VB.net jetzt z.B. vorsorglich folgendes machen:

    Dim ca As New ArrayList()
    Friend WithEvents txBox1 As System.Windows.Forms.TextBox
    Friend WithEvents txBox2 As System.Windows.Forms.TextBox

    ... bis
    Friend WithEvents txBox40 As System.Windows.Forms.TextBox
    und anschließend jeweils
    Me.txBox1 = New System.Windows.Forms.TextBox()
    Me.txBox1.Text = ""
    Controls.Add(txBox1)
    ca.Add(txBox1)
    .... bis
    Me.txBox40 = New System.Windows.Forms.TextBox()
    Me.txBox40.Text = ""
    ca.Add(txBox40)
    Controls.Add(txBox40)
    Wenn Wunschzahl < 40, dann Controls.remove.
    Oder gibt es da eine einfache, elegante Lösung?

  • #2
    Hallo,

    &gt;Oder gibt es da eine einfache, elegante Lösung?

    Ja - das folgende Beispiel demonstriert dies: Der Anwender kann in der TextBox einen Anzahl von Buttons eintragen, die dann dynamisch generiert werden.
    <pre>
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    MessageBox.Show("Button angeklickt:" + DirectCast(sender, Button).Name)
    End Sub
    <br>
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim aDynBtn As System.Windows.Forms.Button
    For iCnt As Integer = 1 To Int32.Parse(TextBox1.Text)
    aDynBtn = New System.Windows.Forms.Button
    aDynBtn.Size = New System.Drawing.Size(88, 28)
    aDynBtn.Left = 10
    aDynBtn.Top = 50 + (iCnt * aDynBtn.Size.Height)
    aDynBtn.Name = "Button" + iCnt.ToString
    aDynBtn.Text = "Button" + iCnt.ToString
    Me.Controls.Add(aDynBtn)
    AddHandler aDynBtn.Click, AddressOf Button2_Click
    Next
    End Sub
    </pre&gt

    Comment


    • #3
      Prima und vielen Dank
      LRiepe

      Comment

      Working...
      X