| |
VB.NET - Ein- und Umsteigerbtn 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 | |
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 | |
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 | |
| 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 |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Neu! sevCoolbar 3.0
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere Infos
|
|
|
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
|
|