Добавление элемента управления TrackBar в ContextMenu - PullRequest
4 голосов
/ 02 декабря 2010

Можно ли добавить элемент управления TrackBar в ContextMenu? Поэтому, когда я щелкаю правой кнопкой мыши, моё ContextMenu выпадает из меню, и TrackBar появляется как пункт меню?

Ответы [ 3 ]

12 голосов
/ 02 декабря 2010

Если ваше контекстное меню имеет значение ContexMenuStrip, вы можете создать элемент следующим образом:

[ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.MenuStrip | 
                                   ToolStripItemDesignerAvailability.ContextMenuStrip)]
public class TrackBarMenuItem : ToolStripControlHost
{
    private TrackBar trackBar;

    public TrackBarMenuItem():base(new TrackBar())
    {
        this.trackBar = this.Control as TrackBar;
    }

    // Add properties, events etc. you want to expose...
}

Благодаря атрибуту ToolStripItemDesignerAvailability вы даже можете увидеть этот элемент в конструкторе форм,как показано на рисунке ниже:

alt text

PS
Это решение взято из этого MSDN-примера

0 голосов
/ 15 марта 2012

То, что стоит тем, кто сталкивается с этой проблемой:

Конструктор типа 'System.Windows.Forms.ToolStripControlHost' не найден.

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

0 голосов
/ 02 декабря 2010

Да, вам нужно установить контекстное меню для рисования пользователем и рисовать пункты меню самостоятельно.Вам нужно будет создать собственный MenuItem, который реализует TrackBar

...