Добавление элемента управления TrackBar в ContextMenu
Можно ли добавить элемент управления TrackBar в ContextMenu? Так что, когда я щелкну правой кнопкой мыши, мой ContextMenu будет выпадать, и TrackBar появится в качестве пункта меню?
3 ответа
Если ваше контекстное меню 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
атрибут, вы даже можете увидеть элемент в дизайнере форм, как показано на рисунке ниже:
PS
Это решение взято из этого примера MSDN
Да, вам нужно установить контекстное меню для рисования пользователем и рисовать пункты меню самостоятельно. Вам нужно будет создать собственный MenuItem, который реализует TrackBar
Для того, что это стоит для тех, кто сталкивается с этим с проблемами с:
Конструктор типа "System.Windows.Forms.ToolStripControlHost" не найден.
Единственный способ заставить его работать, это поместить производный элемент управления в его собственный файл. Когда он находится в том же файле, что и другой элемент управления, он сбивает с толку дизайнера.