vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Buttonklasse erweitern und wiederverwendbar machen 
Autor: ModeratorDaveS (Moderator)
Datum: 18.05.11 14:59

Deine Klasse muss (denke ich) kein Control sein. Und ich möchte nicht behaupten dein Beispiel 100% verstanden zu haben. Du könntest aber so etwas machen
Public Class Form1
    Public Class ControlArray(Of C As {New, Control})
 
        Dim coll As New List(Of C)
 
        Private host As Control
 
        Public Sub AddNewControl(ByVal text As String)
            Dim ctl As New C
 
            coll.Add(ctl)
 
            host.Controls.Add(ctl)
 
            With ctl
                .Text = text
 
            End With
 
            AddHandler ctl.Click, AddressOf MyButton_Click
 
        End Sub
 
        Private Sub MyButton_Click(ByVal sender As Object, ByVal e As EventArgs)
            MessageBox.Show("Sie wählten Schaltfläche " & CType(sender, _
              Button).Name)
        End Sub
 
        Default Public ReadOnly Property Item(ByVal index As Integer) As C
            Get
                If index >= 0 AndAlso index < coll.Count Then
                    Return coll(index)
                End If
            End Get
        End Property
 
        Public Sub New(ByVal host As Control)
            Me.host = host
        End Sub
 
    End Class
 
    Dim myButtonArray As New ControlArray(Of Button)(Me)
 
 
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) _
      Handles Me.Load
 
        myButtonArray.AddNewControl("Button1")
        myButtonArray.AddNewControl("Button2")
        myButtonArray.AddNewControl("Button3")
 
        Dim top As Integer = 10
        For i = 0 To 2
            With myButtonArray(i)
                .Name = "cmdAction"
                .Visible = True
                .Top = top
                top += 50
            End With
        Next
 
    End Sub
 
End Class
Es gibt eine Menge Probleme damit, und ich kann nur kurz ein paar Probleme erwähnen. Der Code in
            With ctl
                .Text = text
 
            End With
kann nur Werte setzen, die als Parameter übergeben werden. In Form_Load wird mehr gemacht, aber welchen Vorteil hat man davon, abgesehen davon, dass man auf den Designer völlig verzichten muss, was alles viel komplizierter macht? In der Klasse kann man auch nur Eigenschaften der Control-Klasse ansprechen, und es gibt sehr viele Controls mit eigenen Eigenschaften. Ohne zu wissen was man in der Hand hat kann man nicht dafür programmieren.

Wie das "wiederverwendbar" wird kann ich wirklich nicht nachvollziehen, die ganze Affäre ist fürchterlich kompliziert wenn du mich fragst. Um Controls wiederverwendbar zu machen nimmt man üblicherweise ein UserControl. Und verwendet Controls wie Flow- bzw TableLayoutPanel wenn es eher um Layout geht. Natürlich kannst du im Prinzip selbst ganz komplizierte Sachen programmieren, dafür braucht man zuerst ausreichende Kenntnisse.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Buttonklasse erweitern und wiederverwendbar machen2.363hauser18.05.11 11:42
Re: Buttonklasse erweitern und wiederverwendbar machen1.252ModeratorDaveS18.05.11 11:49
Re: Buttonklasse erweitern und wiederverwendbar machen1.262hauser18.05.11 11:57
Re: Buttonklasse erweitern und wiederverwendbar machen1.262ModeratorDaveS18.05.11 12:00
Re: Buttonklasse erweitern und wiederverwendbar machen1.282Manfred X18.05.11 11:51
Re: Buttonklasse erweitern und wiederverwendbar machen1.227ModeratorDaveS18.05.11 11:56
Re: Buttonklasse erweitern und wiederverwendbar machen1.214hauser18.05.11 12:01
Re: Buttonklasse erweitern und wiederverwendbar machen1.206Manfred X18.05.11 12:06
Re: Buttonklasse erweitern und wiederverwendbar machen1.187hauser18.05.11 12:23
Re: Buttonklasse erweitern und wiederverwendbar machen1.210Manfred X18.05.11 12:32
Re: Buttonklasse erweitern und wiederverwendbar machen1.209hauser18.05.11 13:49
Re: Buttonklasse erweitern und wiederverwendbar machen1.164Manfred X18.05.11 14:25
Re: Buttonklasse erweitern und wiederverwendbar machen1.163hauser18.05.11 14:49
Re: Buttonklasse erweitern und wiederverwendbar machen1.222DotNetErbse18.05.11 12:09
Re: Buttonklasse erweitern und wiederverwendbar machen1.246Micke18.05.11 12:17
Re: Buttonklasse erweitern und wiederverwendbar machen1.391Manfred X18.05.11 12:27
Re: Buttonklasse erweitern und wiederverwendbar machen1.237Micke18.05.11 12:34
Re: Buttonklasse erweitern und wiederverwendbar machen1.203ModeratorDaveS18.05.11 12:41
Re: Buttonklasse erweitern und wiederverwendbar machen1.201hauser18.05.11 13:28
Re: Buttonklasse erweitern und wiederverwendbar machen1.213ModeratorDaveS18.05.11 13:48
Re: Buttonklasse erweitern und wiederverwendbar machen1.189hauser18.05.11 14:03
Re: Buttonklasse erweitern und wiederverwendbar machen1.187Manfred X18.05.11 14:09
Re: Buttonklasse erweitern und wiederverwendbar machen1.312hauser18.05.11 14:18
Re: Buttonklasse erweitern und wiederverwendbar machen1.906ModeratorDaveS18.05.11 14:59
Re: Buttonklasse erweitern und wiederverwendbar machen1.161hauser18.05.11 15:08
Re: Buttonklasse erweitern und wiederverwendbar machen1.206ModeratorFZelle18.05.11 16:31

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel