Язык Visual Basic на платформе .NET.
Модераторы: Ramzes, Sebas
-
TrueTrue
-
- Продвинутый пользователь
-
-
- Сообщения: 167
- Зарегистрирован: 20.05.2009 (Ср) 23:18
TrueTrue » 06.11.2019 (Ср) 19:29
Есть форма Form1.
На ней ToolStrip1.
В нём список элементов.
При клике на конкретный элемент, на ToolStrip1, выпадает ContextMenu1.
При нажатии на пункт "Удалить" в ContextMenu1, должен удаляться элемент на котором был установлен указатель мышки, при клике.
Но! Для удаления Элемента из ToolStrip1, требуется получить Index Элемента в списке элементов ToolStrip1. Как это сделать?
-
alorion
-
- Начинающий
-
-
- Сообщения: 3
- Зарегистрирован: 19.02.2011 (Сб) 15:26
- Откуда: Владивосток
alorion » 24.11.2019 (Вс) 8:20
Один из способов:
- Код: Выделить всё
Private ClickedButton As ToolStripButton
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
For Each button As ToolStripButton In ToolStrip1.Items
AddHandler button.MouseDown, AddressOf ToolStripButton_MouseDown
Next
End Sub
Private Sub ToolStripButton_MouseDown(sender As Object, e As MouseEventArgs)
ClickedButton = sender
End Sub
Private Sub ContextMenuItem_Click(sender As Object, e As EventArgs) Handles ContextMenuItem.Click
ToolStrip1.Items.Remove(ClickedButton)
End Sub
Использовать индекс кнопки:
- Код: Выделить всё
Private IndexButton As Integer
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
For Each button As ToolStripButton In ToolStrip1.Items
AddHandler button.MouseDown, AddressOf ToolStripButton_MouseDown
Next
End Sub
Private Sub ToolStripButton_MouseDown(sender As Object, e As MouseEventArgs)
IndexButton = ToolStrip1.Items.IndexOf(sender)
End Sub
Private Sub ContextMenuItem_Click(sender As Object, e As EventArgs) Handles ContextMenuItem.Click
ToolStrip1.Items.RemoveAt(IndexButton)
End Sub
Все проверки опущены.
Вернуться в Visual Basic .NET
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13