Я не уверен, насколько вы знакомы с Visio, но под любой формой есть нечто, называемое таблицей форм. Форма - это, в основном, электронная таблица, в которой каждая ячейка направляет Visio при визуализации вашей формы (или иным образом хранит данные).
Я думаю, что для этого вам нужно включить режим разработчика в Visio, затем вы можете щелкнуть правой кнопкой мыши фигуру и выбрать окно с таблицей форм. Я думаю, что это также в раскрывающемся окне окна / ленты.
Так или иначе, когда вы попадаете в форму, вы можете видеть такие элементы, как ширина, высота и т.д. И если вы выберете ячейку с, скажем, шириной, вы, вероятно, просто увидите значения, но со знаком = перед ним. Таким образом, вместо прямого значения ширины, на самом деле это формула. Измените формулу высоты на = Ширина /2, и вы увидите, что при настройке ширины высота остается равной половине ширины.
Итак, теперь, чтобы приблизиться к ответу на ваш вопрос, я предполагаю, что фигура, на которую вы ссылаетесь, использует хитрость таблицы форм, чтобы делать то, что делает. В таблице форм имеется много разных типов данных, и они обычно разбиты по разделам. Раздел, который определяет контекстное меню для фигуры, называется разделом «Действия пользователя». Если вы просмотрите форму для формы переключателя, вы, вероятно, найдете ячейку действия, которая имеет формулу, которая изменяет значение какой-либо другой ячейки с помощью SetF или чего-то подобного. Таким образом, форма, вероятно, настроена так, что переключая значение одной ячейки, она меняет свой внешний вид.
Таким образом, чтобы настроить свою собственную форму таким образом, вы должны сделать что-то подобное, в основном создав пользовательскую ячейку, которая содержит выбранную опцию. Затем настройте все остальные формулы, чтобы прочитать эту ячейку. Затем ваша ячейка действия устанавливает опцию при нажатии.
Еще одна вещь, которую вы можете сделать, это использовать VBA в Visio для реагирования на щелчки действий (используя другую формулу - callthis), но в этом случае ваш VBA будет изменять значения и формулы таблиц, по сути, просто используя другой язык.
В Интернете много информации о том, как делать все эти вещи, но вам нужно знать одно слово для поиска: ShapeSheet.