Стандартные строки меню Windows в Windows Forms

Я заметил то добавление a MenuStrip (от Панели инструментов) к моей форме дизайн не приводит к строке меню как один замеченный во многих собственных Приложениях Windows. Вместо этого я получаю строку меню как собственная Visual Studio. Ни одна из настроек стиля для MenuStrip кажись, подражать намного более общей панели собственного меню.

Существует ли способ добавить строку меню к моему приложению Windows Forms, которое выглядит одинаково как тот, который Вы видите в Блокноте, Диспетчере задач и других? (Предпочтительно с разработчиком, но я не возражал бы добавлять его программно также.)

Снимок экрана для иллюстрации:

34
задан BoltClock 19 August 2012 в 06:12
поделиться

3 ответа

Это просто.

Перейдите в панель инструментов, щелкните правой кнопкой мыши в любом месте внутри и выберите «Выбрать элементы». Когда диалоговое окно загрузится и появится, прокрутите вниз, пока не увидите MainMenu. Добавьте это на панель инструментов, и вы получите собственную панель меню!

Удачного кодирования!

54
ответ дан 27 November 2019 в 16:18
поделиться

Обычно я устанавливаю RenderMode MenuStrip в System, что дает минималистичное, одноцветное меню (без градиентов или чего-то декадентского).

Если этого недостаточно, то вам, вероятно, придется пройти через некоторые низкоуровневые обручи, чтобы получить то, что вы хотите.

4
ответ дан 27 November 2019 в 16:18
поделиться

Вы можете сделать это, установив свойство Menu вашей формы, например:

private void Form1_Load(object sender, EventArgs e)
{
    this.Menu = new MainMenu();
        MenuItem item = new MenuItem("File");
        this.Menu.MenuItems.Add(item);
            item.MenuItems.Add("Save", new EventHandler(Save_Click));
            item.MenuItems.Add("Open", new EventHandler(Open_Click)); 
        item = new MenuItem("Edit");
        this.Menu.MenuItems.Add(item);
            item.MenuItems.Add("Copy", new EventHandler(Copy_Click));
            item.MenuItems.Add("Paste", new EventHandler(Paste_Click)); 
        // etc ...
}

private void Save_Click(object sender, EventArgs e)
{
    // save
}

Эти меню будут выглядеть как "нормальная" система меню.

Однако мне не удалось найти поддержки дизайнера для этого. В свою защиту я особо не старался.

20
ответ дан 27 November 2019 в 16:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: