vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 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

Fortgeschrittene Programmierung
Buttons aus der Laufzeit hinzufügen 
Autor: narf0r
Datum: 03.04.06 13:30

Hallo,

ich möchte einem Formular mehrere Buttons hinzufügen. Die Anzahl dieser Command Buttons kann jedoch variieren und jeder Benutzer soll auch nur diejenigen Buttons sehen, die er auch sehen darf. Also möchte ich die Buttons aus der Laufzeit hinzufügen lassen. Mit einem Button funktioniert es auch, mit mehreren jedoch nicht. Jedesmal wenn ich auf einen Button klicke, passiert einfach nichts, obwohl der Name des Buttons stimmt. Hier mal mein Code:

Mit einem Button geht es wie gesagt... Mit mehreren mal wieder nicht:

[quote="code"]
Private WithEvents cmdNewButton As CommandButton

Private Sub cmdMakeControls_Click()
Set cmdNewButton = Me.Controls.Add("VB.CommandButton", "cmdNewButton", Me)
With cmdNewButton
.Width = 1800
.Height = 340
.Caption = "&Show Message"
.Top = 300
.Left = 300
.Visible = True
End With
End Sub

Private Sub cmdNewButton_Click()
Call MsgBox("Hello World!")
End Sub

[B]Private WithEvents cmdNewButton As CommandButton[/B]

Die Zeile braucht er ja dann anscheinend. Nun gut. Hat funktioniert. Also habe ich dann das mal auf meine Bedürfnisse angepasst da ich ja mehrere Buttons erstellen möchte. Das mit dem Erstellen funktioniert auch einwandfrei. Nur leider passiert mal wieder überhaupt nichts, wenn ich den Button klicke. Ich versuche es mal anhand eines Beispieles zu erklären:

[quote="code2"]If LOGIN_USER_VAR_Messenger = "1" Then
EAD_BUTTON_COUNT = EAD_BUTTON_COUNT + 1
BTN_NAME = "btnMail"
BTN_CAPTION = "MAIL"
SET_BUTTON_POS
ADD_BUTTON
End If

[B]EAD_BUTTON_COUNT = EAD_BUTTON_COUNT + 1[/B]

Hier wird die Anzahl der Buttons hochgezählt. In der Sub SET_BUTTON_POS wird dann die X und Y position des buttons festgelegt.

[B]BTN_NAME = "btnMail"
BTN_CAPTION = "MAIL"[/B]

Festlegen des Button Namens und der Caption.

[B]SET_BUTTON_POS[/B]

Hier wird die X-Koordinate (BTN_XPOS) und die Y-Koordinate (BTN_YPOS) des Buttons festgelegt damit er an die passende Position gesetzt wird.

ADD_BUTTON

Hier wird dann der Button hinzugefügt:

[quote="ADD_BUTTON"]Public Function ADD_BUTTON()

Set BTN_NAME = formUserPanel.Controls.Add("VB.CommandButton", BTN_NAME, formUserPanel)
With BTN_NAME
.Width = 1215
.Height = 375
.Caption = BTN_CAPTION
.Top = BTN_YPOS
.Left = BTN_XPOS
.Visible = True
End With

End Function

Es wird also der Button mit dem Namen "btnMail" hinzugefügt (BTN_NAME). Ich habe bereits geprüft ob der Name auch stimmt. Der Button hat definitiv diesen Namen. Nun habe ich dann am Ende folgenden Code hinzugefügt:

[B]Private WithEvents btnMail As CommandButton[/B]

Dann der Code der ausgelöst werden soll wenn auf den Button geklickt wird:

[quote="code4"]
Private Sub btnMail_Click()
formMailWindow.Show 1
End Sub

Es passiert einfach nichts. Ich verstehs nicht. Kann mir denn niemand helfen? Das mit den Buttons hinzufügen hat so einwandfrei geklappt dass es mich ärgern würde wenn ich jetzt alles wieder über den Haufen werden müsste
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Buttons aus der Laufzeit hinzufügen650narf0r03.04.06 13:30
Re: Buttons aus der Laufzeit hinzufügen394RonnyImBalkon03.04.06 13:58

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