vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB.NET - Ein- und Umsteiger
Button in tabpage ansprechen 
Autor: joachimS
Datum: 19.06.15 18:15

hallo,
ich hab mir in einer tabpage ein Button angelegt
        Dim butStart As New Button()
        butStart.Parent = tpFlug 'tabpage tpFlug
        butStart.Text = "Timer Start"
        butStart.AutoSize = True
        butStart.Location = New Point(100, 100)
jetzt möchte ich natürlich auch wenn ich drauf klicke das was passiert

hier bei tut sich nämlich nichts


    Private Sub butStart_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) _
    Handles butStart.Click
 
        MsgBox("Test", MsgBoxStyle.Critical)
    End Sub
wie muss ich den ansprechen, damit er was macht?

mfg.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Button in tabpage ansprechen 
Autor: Manfred X
Datum: 19.06.15 18:21

Bei dynamisch zur Laufzeit erstellten Controls
solltest Du "AddHandler" verwenden, um einem Control-Ereignis
eine HandlerRoutine zuzuordnen.
Beispiele findest Du im Forum.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Button in tabpage ansprechen 
Autor: joachimS
Datum: 19.06.15 18:50

hallo,

jo.. das hat gefehlt

AddHandler butStart.Click, AddressOf butStart_Click
hab aber noch eine Frage ...

auf der gleichen tabpage hab ich eine Textbox
die wollte ich jetzt per Button Click füllen
was muss ich da machen


        Dim txtAuflass As TextBox = CType(sender, TextBox)
 
        txtAuflass.Text = "hallo"
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Button in tabpage ansprechen 
Autor: Manfred X
Datum: 19.06.15 19:05

Der Sender-Parameter im Click-Event eines Button, liefert
die Referenz zur Instanz des Button, auf den geclickt worden ist.

Wenn Du eine Textbox auf der TabPage ansprechen willst, kannst Du Dir
die Referenz auf die Box z.B. aus der Controls-Auflistung der TabPage besorgen.

Sei "tp" die TabPage und die Name-Eigenschaft der dort enthaltenen Textbox sei "TheBox":
        For Each ctrl As Control In tp.Controls
            If TypeOf ctrl Is TextBox AndAlso ctrl.Name = "TheBox" Then
                Dim tbo As TextBox = DirectCast(ctrl, TextBox)
                tbo.Text = "Was auch immer"
            End If
        Next ctrl
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Button in tabpage ansprechen 
Autor: joachimS
Datum: 19.06.15 19:39

da tut sich nix
keine Fehlermeldung
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Button in tabpage ansprechen 
Autor: Manfred X
Datum: 19.06.15 19:54

In diesem Windows-Forms-Form klappt es immerhin.
Public Class frmTabDemo
 
    Dim tc As New TabControl With _
            {.Parent = Me, .Dock = DockStyle.Fill}
 
    Dim tp As New TabPage With _
            {.Parent = tc, .Dock = DockStyle.Fill, .Text = "TheTab"}
 
 
 
    Private Sub frmTabDemo_Load(sender As System.Object, _
                         e As System.EventArgs) Handles MyBase.Load
 
        Me.Width = 500
 
        Dim tbo As New TextBox With _
                      {.Parent = tp, .Font = New Font("Arial", 24), _
                       .Dock = DockStyle.Top, .Name = "TheBox"}
 
        Dim btn As New Button With _
                     {.Parent = tp, .Text = "Click", .Top = 100}
        AddHandler btn.Click, AddressOf btn_Click
 
    End Sub
 
 
 
    Public Sub btn_Click(sender As Object, e As EventArgs)
 
        For Each ctrl As Control In tp.Controls
            If TypeOf ctrl Is TextBox AndAlso ctrl.Name = "TheBox" Then
                Dim tb As TextBox = DirectCast(ctrl, TextBox)
                tb.Text = "Da tut sich schon etwas"
            End If
        Next ctrl
    End Sub
End Class
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Find-Methode 
Autor: Manfred X
Datum: 19.06.15 20:37

Falls Du z.B. alle geschachtelten Controls dynamisch erstellst,
kannst Du vorteilhaft die Find-Methode verwenden,
um ein Control (oder mehrere) anhand des Namens zu ermitteln.

Der zweite Parameter bestimmt, ob auch Controls in untergeordneten
Containern ermittelt werden.
    Public Sub btn_Click(sender As Object, e As EventArgs)
 
        Dim ctrl() As Control = Me.Controls.Find("TheBox", True)
 
        If ctrl.Length > 0 AndAlso TypeOf ctrl(0) Is TextBox Then
            Dim tb As TextBox = DirectCast(ctrl(0), TextBox)
            tb.Text = "Da tut sich schon etwas"
        End If
 
    End Sub
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Button in tabpage ansprechen 
Autor: joachimS
Datum: 19.06.15 20:42

das stimmt
und sieht einfacher und übersichtlicher aus
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Button in tabpage ansprechen 
Autor: Manfred X
Datum: 19.06.15 20:59

In komplexen Formularen ist es meist günstiger,
Referenzen für zusammengehörige Gruppen von Controls
in Dictionarys einzutragen.
Die Vergabe eindeutiger Schlüsselwerte wird überwacht,
und die Dictionary (Value) kann für abgeleitete Klassen
erstellt werden - das casten entfällt.
Ein direkter Zugriff auf jedes Control per Schlüssel ist möglich.


Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Button in tabpage ansprechen 
Autor: joachimS
Datum: 20.06.15 12:32

danke,
habe mir das mal näher angeschaut
http://www.dotnetperls.com/dictionary-vbnet
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Button in tabpage ansprechen 
Autor: Manfred X
Datum: 20.06.15 12:53


Beispiel
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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-2024 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