vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 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
btn und cms zur Laufzeit erzeugen 
Autor: FlyingGancho
Datum: 01.08.20 23:50

Hallo zusammen,
ich möchte zur Laufzeit einen Button erzeugen und diesem auch zur Laufzeit erzeugte ContextMenuStrip zuordnen. Soweit so gut.
Bei Klick auf das cms.item soll der Text des Items in eine txt geschrieben werden - das klappt bei mir nicht....

For i = 0 To 25
Dim cms As New ContextMenuStrip
For j = 0 To vlstVorgabe.Count - 1
Dim sb As New System.Text.StringBuilder(vlstVorgabe(j))
sb.Replace("00-", "")
h2 = sb.ToString
h3 = Strings.Left(h2, 1)
If h3 = Chr(i + 65) Or h3 = Chr(i + 97) Then
cms.Items.Add(h2)
End If
AddHandler cms.Click, AddressOf CMSClick
Next

Dim button1 As New Button
With button1
.Size = New Size(35, 26)
.Text = Chr(i + 65)
.TextAlign = ContentAlignment.TopCenter
.Location = New Point(i * 41 + 12, 174)
.Font = New Font("Microsoft Sans Serif", 12)
.ContextMenuStrip = cms
End With
Me.Controls.Add(button1)
AddHandler button1.Click, AddressOf BtnClick
Next

Private Sub CMSClick(ByVal sender As Object, ByVal e As EventArgs)
...
End Sub


und wenn ich noch einen Hinweis kriege, wie auch beim LinksClick das cms aktiviert wird...

Besten Dank
DC
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: btn und cms zur Laufzeit erzeugen 
Autor: Manfred X
Datum: 02.08.20 16:34

Meinst Du so etwas ?
Code-Tags sind kein Luxus.

Public Class frmContextMenu
 
    Dim btn As New List(Of Button)
    Dim cms As New List(Of ContextMenuStrip)
 
    Private Sub frmContextMenu_Load(sender As Object,
             e As EventArgs) Handles MyBase.Load
 
        For i As Integer = 1 To 3
            Dim bt As New Button, cm As New ContextMenuStrip
            With cm
                .Items.Add("A" & i.ToString)
                .Items.Add("B" & i.ToString)
                .Text = i.ToString
                AddHandler .ItemClicked, AddressOf cms_itemclicked
 
            End With
            With bt
                .Top = i * 30
                .Text = i.ToString
                .ContextMenuStrip = cm
                .Parent = Me
                AddHandler .Click, AddressOf btn_Click
                AddHandler .MouseDown, AddressOf btn_mousedown
            End With
            cms.Add(cm) : btn.Add(bt)
        Next
    End Sub
 
 
    Private Sub btn_Click(sender As Object, e As EventArgs)
 
        Dim bt As Button = DirectCast(sender, Button)
        MsgBox("Button " & bt.Text & " ist geclickt")
 
    End Sub
 
 
    Private Sub cms_itemclicked(sender As Object, 
        e As ToolStripItemClickedEventArgs)
 
        Dim cm As ContextMenuStrip = 
               DirectCast(sender, ContextMenuStrip)
        Dim cmtxt As String = e.ClickedItem.Text
 
        MsgBox("Menu " & cm.Text & "  Item " & cmtxt & " ist geclicked")
 
    End Sub
 
 
    Private Sub btn_Mousedown(sender As Object, e As MouseEventArgs)
 
        If e.Button = MouseButtons.Left AndAlso 
            TypeOf sender Is Button Then
 
            Dim bt As Button = DirectCast(sender, Button)
            Dim pos As Point '= bt.Location
            pos.X = bt.Width : pos.Y = 8
            bt.ContextMenuStrip.Show(bt, pos)
        End If
 
    End Sub
End Class
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: btn und cms zur Laufzeit erzeugen 
Autor: FlyingGancho
Datum: 03.08.20 01:31

Großes Kino!
genauso hatte ich mir das vorgestellt!!

Vielen Dank - jetzt drei !!!

DC
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