Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
 Аватар для mozgotron
64 / 73 / 1
Регистрация: 23.05.2015
Сообщений: 360
Записей в блоге: 52
.NET 4.x

Программное переключение свойств пунктов меню ToolStripMenuItem — Checked и Enabled (True/False)

02.02.2024, 00:36. Показов 1218. Ответов 2

Студворк — интернет-сервис помощи студентам
Эта тема связана с классом System.Windows.Forms.ToolStripMenuItem и пользовательским интерфейсом (UI) формы.

Потребовалось написать обработчик выбора пунктов меню.

Сценарий
1. Пользователь кликает по одному из семи пунктов меню.
2. На этом пункте меню появляется галочка и пункт деактивируется.
3. На том пункте меню, который до клика был с галочкой и неактивен, галочка снимается и пункт активируется для выбора.











Решил это так:

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Imports System.Windows.Forms
 
Public Class MainForm
 
    Private currentCheckedItem As ToolStripMenuItem
    Private previousCheckedItem As ToolStripMenuItem
 
    Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles Me.Load
        previousCheckedItem = UTF8ToolStripMenuItem1 'ПУНКТ МЕНЮ, ВЫБРАННЫЙ ПО УМОЛЧАНИЮ
    End Sub
 
    'БЛОК УПРАВЛЕНИЯ КНОПКАМИ ИСПРАВЛЕНИЯ КОДИРОВКИ
 
    Private Sub ASCIIToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles ASCIIToolStripMenuItem1.Click
        Click_Handler_ToolStripMenuItem(ASCIIToolStripMenuItem1)
    End Sub
 
    Private Sub ANSIToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles ANSIToolStripMenuItem1.Click
        Click_Handler_ToolStripMenuItem(ANSIToolStripMenuItem1)
    End Sub
 
    Private Sub UTF7ToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles UTF7ToolStripMenuItem1.Click
        Click_Handler_ToolStripMenuItem(UTF7ToolStripMenuItem1)
    End Sub
 
    Private Sub UTF8ToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles UTF8ToolStripMenuItem1.Click
        Click_Handler_ToolStripMenuItem(UTF8ToolStripMenuItem1)
    End Sub
 
    Private Sub UTF16LEToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles UTF16LEToolStripMenuItem1.Click
        Click_Handler_ToolStripMenuItem(UTF16LEToolStripMenuItem1)
    End Sub
 
    Private Sub UTF16BEToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles UTF16BEToolStripMenuItem1.Click
        Click_Handler_ToolStripMenuItem(UTF16BEToolStripMenuItem1)
    End Sub
 
    Private Sub UTF32ToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles UTF32ToolStripMenuItem1.Click
        Click_Handler_ToolStripMenuItem(UTF32ToolStripMenuItem1)
    End Sub
 
    Private Sub Click_Handler_ToolStripMenuItem(ByVal currentCheckedItem)
        With previousCheckedItem
            .Enabled = True
            .Checked = False
        End With
        With currentCheckedItem
            .Enabled = False
            .Checked = True
        End With
        previousCheckedItem = currentCheckedItem
    End Sub
 
End Class
Можно ли здесь что исправить?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.02.2024, 00:36
Ответы с готовыми решениями:

Не работает Enabled:=false;true [Delphi 7]
Товарищи, возникла проблемка, дано: У нас есть MainMenu1 на нём есть вкладка поиск. У нас есть на форме PageControl. И мне надо...

Нужно, чтобы при checkbox.checked=true я мог набирать текст в textbox-е, ну и соответственно при checkbox.checked=false - нет.
есть checkbox и textbox. Нужно, чтобы при checkbox.checked=true я мог набирать текст в textbox-е, ну и соответственно при...

Уменьшение ширины пунктов контекстного меню (ToolStripMenuItem)
всем приветы. Добавлено через 11 минут всем приветы. текст пунктов и подпунктов контекстного меню весьма длинный и раскрытое меню...

2
sleep
 Аватар для I can
4941 / 4624 / 842
Регистрация: 13.04.2015
Сообщений: 9,799
02.02.2024, 01:45
Лучший ответ Сообщение было отмечено mozgotron как решение

Решение

Цитата Сообщение от mozgotron Посмотреть сообщение
Можно ли здесь что исправить?
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Public Class MainForm
 
    Private Sub MainForm_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        ToolStripMenuItem2.Checked = True
        ToolStripMenuItem2.Enabled = False
    End Sub
 
    Private Sub ToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripMenuItem2.Click,
                                                                                                ToolStripMenuItem3.Click,
                                                                                                ToolStripMenuItem4.Click,
                                                                                                ToolStripMenuItem5.Click,
                                                                                                ToolStripMenuItem6.Click,
                                                                                                ToolStripMenuItem7.Click,
                                                                                                ToolStripMenuItem8.Click
        For Each t As ToolStripMenuItem In ИсправитьКодировкуToolStripMenuItem.DropDownItems
            t.Checked = False
            t.Enabled = True
        Next
        Dim m As ToolStripMenuItem = sender
        m.Checked = True
        m.Enabled = False
    End Sub
 
 
End Class
2
 Аватар для mozgotron
64 / 73 / 1
Регистрация: 23.05.2015
Сообщений: 360
Записей в блоге: 52
02.02.2024, 12:55  [ТС]
I can, спасибо, переделал, работает.

VB.NET
1
2
3
4
5
6
7
8
9
10
11
    Private Sub ToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles ASCIIToolStripMenuItem1.Click, ANSIToolStripMenuItem1.Click, _
        UTF7ToolStripMenuItem1.Click, UTF8ToolStripMenuItem1.Click, UTF16LEToolStripMenuItem1.Click, UTF16BEToolStripMenuItem1.Click, _
        UTF32ToolStripMenuItem1.Click
        For Each t As ToolStripMenuItem In ToolStripDropDownButton1.DropDownItems
            t.Checked = False
            t.Enabled = True
        Next
        Dim m As ToolStripMenuItem = sender
        m.Checked = True
        m.Enabled = False
    End Sub
Добавлено через 2 минуты
Оказывается DropDownItems относятся к DropDownButton. Буду знать.
Code
1
ToolStripDropDownButton1.DropDownItems
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.02.2024, 12:55
Помогаю со студенческими работами здесь

Как программно свойство checked у checkbox выставить в false или true (т.е. галочку убрать)
Как программно свойство checked у checkbox выставить в false или true (т.е. галочку убрать)

MenuStrip и прочее меню созданное в VS - программный поиск ToolStripMenuItem и добавление в него новых пунктов
Друзья, устал... Сил нет, а от того просьба в поиске простого решения: Раньше, в паре проектов, когда нужно было динамить небольшое...

Программное переключение меню
Всем доброго времени суток. У меня есть стороннее приложение при клике по окну которого появляется меню (стандартное, как у большинства...

ToolStripMenuItem и Checked
Здравствуйте! Есть ToolStripMenuItem, в нем есть список, хочу использовать этот список как Checked. Т.е. я открываю меню и помечаю...

Меняется значение элемента с true на false, но не отрабатывается смена :disabled=true на :disabled=false
<button type="button" @click="buttonsClick(0)" :disabled="switcher" class="btn btn-dark">Первая кнопка</button> <button...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru