2014-10-11 3 views
0

Я пытаюсь заполнить поле со списком, которое находится на панели инструментов в файле vsct. Как указать элементы в комбо? Он компилируется отлично, но при отладке никаких элементов не появляется.Комбинированные элементы панели инструментов Visual Studio .net

<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 в определение combobox в файле VSCT, который не будет работать.

фактические детали могут быть заполнены по списку command's выполнить обработчик, например:

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); 
     } 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^