Как написать меню на c
Для создания меню в Windows Forms применяется элемент MenuStrip . Данный класс унаследован от ToolStrip и поэтому наследует его функциональность.
Наиболее важные свойства компонента MenuStrip:
- Dock : прикрепляет меню к одной из сторон формы
- LayoutStyle : задает ориентацию панели меню на форме. Может также, как и с ToolStrip, принимать следующие значения
- HorizontalStackWithOverflow : расположение по горизонтали с переполнением — если длина меню превышает длину контейнера, то новые элементы, выходящие за границы контейнера, не отображаются, то есть панель переполняется элементами
- StackWithOverflow : элементы располагаются автоматически с переполнением
- VerticalStackWithOverflow : элементы располагаются вертикально с переполнением
- Flow : элементы размещаются автоматически, но без переполнения — если длина панели меню меньше длины контейнера, то выходящие за границы элементы переносятся
- Table : элементы позиционируются в виде таблицы
MenuStrip выступает своего рода контейнером для отдельных пунктов меню, которые представлены объектом ToolStripMenuItem .
Добавить новые элементы в меню можно в режиме дизайнера:

Для добавления доступно три вида элементов: MenuItem (объект ToolStripMenuItem), ComboBox и TextBox . Таким образом, в меню мы можем использовать выпадающие списки и текстовые поля, однако, как правило, эти элементы применяются в основном на панели инструментов. Меню же обычно содержит набор объектов ToolStripMenuItem.
Также мы можем добавить пункты меню в коде C#:
public partial class Form1 : Form < public Form1() < InitializeComponent(); ToolStripMenuItem fileItem = new ToolStripMenuItem("Файл"); fileItem.DropDownItems.Add("Создать"); fileItem.DropDownItems.Add(new ToolStripMenuItem("Сохранить")); menuStrip1.Items.Add(fileItem); ToolStripMenuItem aboutItem = new ToolStripMenuItem("О программе"); aboutItem.Click += aboutItem_Click; menuStrip1.Items.Add(aboutItem); >void aboutItem_Click(object sender, EventArgs e) < MessageBox.Show("О программе"); >>ToolStripMenuItem в конструкторе принимает текстовую метку, которая будет использоваться в качестве текста меню. Каждый подобный объект имеет коллекцию DropDownItems , которая хранит дочерние объекты ToolStripMenuItem. То есть один элемент ToolStripMenuItem может содержать набор других объектов ToolStripMenuItem. И таким образом, образуется иерархическое меню или структура в виде дерева.
Если передать при добавление строку текста, то для нее неявным образом будет создан объект ToolStripMenuItem: fileItem.DropDownItems.Add(«Создать»)
Назначив обработчики для события Click , мы можем обработать нажатия на пункты меню: aboutItem.Click += aboutItem_Click

Отметки пунктов меню
Свойство CheckOnClick при значении true позволяет на клику отметить пункт меню. А с помощью свойства Checked можно установить, будет ли пункт меню отмечен при запуске программы.
Еще одно свойство CheckState возвращает состояние пункта меню — отмечен он или нет. Оно может принимать три значения: Checked (отмечен), Unchecked (неотмечен) и Indeterminate (в неопределенном состоянии)
Например, создадим ряд отмеченных пунктов меню и обработаем событие установки / снятия отметки:
public partial class Form1 : Form < public Form1() < InitializeComponent(); ToolStripMenuItem fileItem = new ToolStripMenuItem("Файл"); ToolStripMenuItem newItem = new ToolStripMenuItem("Создать") < Checked = true, CheckOnClick = true >; fileItem.DropDownItems.Add(newItem); ToolStripMenuItem saveItem = new ToolStripMenuItem("Сохранить") < Checked = true, CheckOnClick = true >; saveItem.CheckedChanged += menuItem_CheckedChanged; fileItem.DropDownItems.Add(saveItem); menuStrip1.Items.Add(fileItem); > void menuItem_CheckedChanged(object sender, EventArgs e) < ToolStripMenuItem menuItem = sender as ToolStripMenuItem; if (menuItem.CheckState == CheckState.Checked) MessageBox.Show("Отмечен"); else if (menuItem.CheckState == CheckState.Unchecked) MessageBox.Show("Отметка снята"); >>
Клавиши быстрого доступа
Если нам надо быстро обратиться к какому-то пункту меню, то мы можем использовать клавиши быстрого доступа. Для задания клавиш быстрого доступа используется свойство ShortcutKeys :
public partial class Form1 : Form < public Form1() < InitializeComponent(); ToolStripMenuItem fileItem = new ToolStripMenuItem("Файл"); ToolStripMenuItem saveItem = new ToolStripMenuItem("Сохранить") < Checked = true, CheckOnClick = true >; saveItem.Click+=saveItem_Click; saveItem.ShortcutKeys = Keys.Control | Keys.P; fileItem.DropDownItems.Add(saveItem); menuStrip1.Items.Add(fileItem); > void saveItem_Click(object sender, EventArgs e) < MessageBox.Show("Сохранение"); >>Клавиши задаются с помощью перечисления Keys . В данном случае по нажатию на комбинацию клавиш Ctrl + P, будет срабатывать нажатие на пункт меню «Сохранить».
С помощью изображений мы можем разнообразить внешний вид пунктов меню. Для этого мы можем использовать следующие свойства:
- DisplayStyle : определяет, будет ли отображаться на элементе текст, или изображение, или и то и другое.
- Image : указывает на само изображение
- ImageAlign : устанавливает выравнивание изображения относительно элемента
- ImageScaling : указывает, будет ли изображение растягиваться, чтобы заполнить все пространство элемента
- ImageTransparentColor : указывает, будет ли цвет изображения прозрачным
Если изображение для пункта меню устанавливает в режиме дизайнера, то нам надо выбрать в окне свойство пункт Image, после чего откроется окно для импорта ресурса изображения в проект

Чтобы указать, как разместить изображение, у свойства DisplayStyle надо установить значение Image . Если мы хотим, чтобы кнопка отображала только текст, то надо указать значение Text , либо можно комбинировать два значения с помощью другого значения ImageAndText . По умолчанию изображение размещается слева от текста:

Также можно установить изображение динамически в коде:
fileToolStripMenuItem.Image = Image.FromFile(@"D:\Icons\0023\block32.png");
Как создать меню?
Как в СИ создать меню,которое бы открывалось бы не вводом сначала символа, а потом enterа, а сразу с символа? Какая есть функция для этого в свитче?
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 55 56
void work(void) { int cod; menu(); scanf("%d", &cod); while(cod!=10) { switch(cod){ case 1 : { VvodR(); break; } case 2 : { int n; printf("Введите позицию для вставки "); scanf("%d", &n); Vvod_Ins(n); printf("ВЫПОЛНЕНО. "); _getch(); break; } case 3 : { int n; printf("Введите позицию для удаления "); scanf("%d", &n); Del(n); printf("ВЫПОЛНЕНО. "); _getch(); break; } case 4 : { Destroy(); printf("ВЫПОЛНЕНО. "); _getch(); break; } case 5 : { Save(); printf("ВЫПОЛНЕНО. "); _getch(); break; } case 6 : { Print(); _getch(); break; } case 7 : { int n,n2; char s[5]; printf("Выбирите направление : inc - По возрастанию / dec- По убыванию \n"); scanf("%s", s); if (strcmp(s,"inc")==0){ n=0;} else n=1; printf("Выбирите поле:\n"); printf("1-Фамилия\n2-Индекс\n3-Город\n4-Улица\n5-Дом\n6-Квартира\n"); scanf("%d", &n2); Sort(n,n2); printf("ВЫПОЛНЕНО. "); _getch(); break; } case 8: { char n_str[30]; int kol=0; printf("Введите фамилию для удаления "); scanf("%s", n_str); printf("Введите кол-во удаляемых элементов "); scanf("%d", &kol); DelEl2(n_str, kol); break;} case 9: { char name_file[20]; printf("Введите имя файла:\n"); scanf("%s", name_file); SaveTXT(name_file); printf("ВЫПОЛНЕНО. "); _getch(); break; } } menu(); scanf("%d", &cod); }
Как мне его переделать?
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:Создать проект. Создать разделы меню. Вызвать форму из главного меню
Приветствую Всех. Недавно зарегистрировался на данном форуме. Вопрос и соответственно большая.
Как создать контекстное меню. Например нажимая на richTextBox правой кнопкой мыши, мне бы предоставлялось контекстное меню
Как создать контекстное меню. Например нажимая на richTextBox правой кнопкой мыши, мне бы.Как создать меню
Приветствую всех. Скажите как создать меню при котором вызывается окно, в которое нужно какие то.
Как создать меню
В общем хочу для начала написать программу, которая бы решала разные математические действия. То.Как в языке СИ сделать выбор действий через case с выходом меню выбора действий?

По сути — вам надо просто все это в какой нить цикл (типа while) запихнуть. ТОлько продумайте условия выхода. А так все вроде должно выполняться.
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- C
- +1 ещё
Почему мой пин постоянно 1?
- 1 подписчик
- вчера
- 134 просмотра
Создать меню
При создании нового сайта меню формируется автоматически. Однако, если вам нужно создать новое меню с нуля, в этом руководстве будет показано, как это сделать.
В этом руководстве
- Создание меню в редакторе сайта
- Создание меню в консоли
- Создание меню в конфигураторе
- Обучающее видео
Создание меню в редакторе сайта
Если вы не можете найти раздел Внешний вид → Меню в своей консоли, это значит, что для вашего сайта используется редактор сайта. Для управления меню перейдите в раздел Внешний вид → Редактор и измените блок «Навигация» вместо выполнения остальных шагов в этом руководстве.
Создание меню в консоли
Чтобы создать меню на консоли WP Admin, перейдите в раздел консоли Внешний вид → Меню.
Щелкните ссылку Создать новое меню, введите имя меню (удобное для запоминания) и нажмите кнопку Создать меню.
После создания первого меню появятся две новые опции.

- Автоматическое добавление страниц: если этот флажок установлен, новые страницы будут добавляться автоматически при создании.
- Области темы: позволяют выбирать местоположение вашего пользовательского меню в теме. По умолчанию ваше меню будет появляться в основной области навигации вашей темы. Однако, если тема может содержать несколько меню, вы можете выбрать другую область.
Создание меню в конфигураторе
Обучающее видео

- Вы увидите, что меню было создано по умолчанию. Обычно оно называется Основное или Главное меню. Процедуру добавления ссылок в это меню см. в следующем руководстве.

- Присвойте имя меню, например «Основное меню». Имя меню публично не отображается.
- В разделе Области для меню установите хотя бы один флажок. Меню появится в том месте, которое вы выбрали. (Доступные области для меню будут зависеть от темы.)
- Нажмите Далее, чтобы начать добавлять элементы в новое меню.

Области для меню
Параметр «Области для меню» в конфигураторе определяет, где на сайте отображается меню. Доступные опции будут зависеть от темы.
Не забудьте установить хотя бы один флажок в разделе Области для меню. Расположение главного меню обычно называется меню заголовка, основным, верхним или главным меню.
Также вы можете видеть меню ссылок на соцсети — тип меню для отображения ссылок на ваши страницы в социальных сетях. Скорее всего, вы не захотите установить этот флажок главного меню, так как это специальное меню со значками социальных сетей.