c # - Sådan konfigureres ToolStripDropdownbutton størrelse for at matche størrelsen på den overordnede dropdown-knap?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg arbejder på en C # desktop applikation. Jeg bruger en menu strips control, hvor jeg har brugt en drop down button.


Når dropdown er klikket, viser det elementer, men bredden af ​​dropdownmenuen ser ud til at være problemet, det er altid større. Jeg vil have, at det er den samme størrelse som knappen.


Her er et skærmbillede:


Screenshot


Hvad jeg kæmper med at konfigurere:



  1. Jeg vil have bredden af ​​DropDown til at være den samme som knappen.

  2. Pilen i rullemenuen skal være større.

  3. Knappen skal være kurvet, ikke fladstilet, det er en ToolStripDropdownbutton.


Bedste reference


Desværre går du imod kornet til denne kontrol, og du bliver nødt til at ty til dine egne kontroller eller brugerdefineret maleri for at få præcis det ønskede.


Du skal kunne ændre formen/størrelsen på drop down pilen ved hjælp af brugerdefineret maleri.
Du skal kunne begrænse størrelsen på rullemenuen ved at overstyre kontrollen.
Men da drop-down menuen har plads til flåter og genveje, formoder jeg, at du måske skal gøre mere arbejde, end du havde forventet.


Her er et par pointer, som du måske finder nyttige:
http://connect.microsoft.com/VisualStudio/feedback/details/97456/owner-drawn-toolstripcombobox[3]


Dette antyder at bruge ToolStripControlHost (kontrol) til at være vært for vilkårlig kontrol.
Med et simpelt eksempel på: http://alala666888.wordpress.com/2010/07/15/custom-toolstripitem/[4]


http://www.codeproject.com/KB/static/DropDownContainer.aspx
Dette projekt (omend i VB.Net) viser mange af problemerne med at skrive dine egne kontroller for at gøre det samme. [5]


Der er også denne artikel om at skrive ToolStripRenderers:
http://www.codeproject.com/KB/menus/CustomToolStripRenderer.aspx[6]


Her er et andet C # -baseret eksempel på en brugerdefineret kontrol:
http://www.codeproject.com/KB/selection/office2003colorpicker.aspx[7]

Andre referencer 1


Du kan muligvis bruge en ComboBox-kontrol i stedet og ændre DropDownStyle til DropDownList.


Nogle oplysninger om hvordan man bruger en knap med en ComboBox kan findes her: http://social.msdn.microsoft.com/forums/en-US/winformsdesigner/thread/5d65f987-834c-465f-a944-622831d4cfb0[8]