Визуальная студия.NET расширения панели инструментов комбинированные элементы
Я пытаюсь заполнить поле со списком, которое находится на панели инструментов в файле vsct. Как мне указать элементы в комбо? Компилируется нормально, но при отладке не отображаются элементы.
<Combos>
<Combo guid="guidIDEToolbarCmdSet" id="cmdEnv" priority="0x0100" type="DropDownCombo" defaultWidth="130" idCommandList="comboItems">
<Parent guid="guidIDEToolbarCmdSet" id="ToolbarGroup"/>
<CommandFlag>IconAndText</CommandFlag>
<CommandFlag>CommandWellOnly</CommandFlag>
<Strings>
<ButtonText>Environment:</ButtonText>
<CommandName>Dev</CommandName>
<CommandName>UserTest</CommandName>
<CommandName>LiveTest</CommandName>
<CommandName>LiveDebug</CommandName>
</Strings>
</Combo>
</Combos>
1 ответ
Элементы поля со списком предоставляются дополнительной командой (той, которая указана idCommandList
атрибут); просто добавив несколько CommandName
элементы определения комбобокса в пределах VSCT
файл не будет работать.
Фактические элементы могут быть заполнены обработчиком выполнения команды list, например:
private void InvokeGetList(object sender, EventArgs e)
{
var eventArgs = e as OleMenuCmdEventArgs;
if (eventArgs != null)
{
// Note: works only for dynamic- and dropdown- combos
IntPtr pOutValue = eventArgs.OutValue;
if (pOutValue != IntPtr.Zero)
{
string[] valueStrings = new[] { "One", "Two", "Three" };
Marshal.GetNativeVariantForObject(valueStrings, pOutValue);
}
}
}