[VB.NET] Menu's met icons maken *

Pagina: 1
Acties:

  • jordan2k
  • Registratie: Juli 2001
  • Laatst online: 17-04 12:57
Ben bezig met menu object en nu wil ik een grapich menu maken dus met van die icons voor de text. (zo iets als je ook in word enz ziet)
Nu kan je dit doen door een leeg menu object te plaatsen en dan tijdens een form load alle menu items te laden met de icons.
maar is toch een beetje omslachtig.

Nu zoek ik eigenlijk een manier om vanuit de IDE van Visual Studio bij de eigenschapen all een icon mee te geven aan een menu item.

of is er een manier om tijdens de form load de icons te adden aan de bestaande menu items.
Kan alleen niet in het menu object iets vinden waar ik dat zo mee kan doen.

Code1 {Zo werkt het wel maar is best omslachtig}
code:
1
2
        miFile.MenuItems.Add(New IconMenuItem("&Open", New Icon("..\open.ico"), _
            handlerFile, Shortcut.CtrlO))


Code 2 {hoe kan ik hier die icon aan toevoegen}
code:
1
2
        Me.MenuItem2.Index = 0
        Me.MenuItem2.Text = "&Open"

Dacht eerst Me.MenuItem2.Icon maar dat bestaat niet en image ook all niet.

heeft iemand hier een tooltje of zo voor wat het makkelijker maakt om dit te maken.

heb op msdn de eerste optie gevonden maar komt nog all wat extra code bij kijken die je bij een normaal menu item niet hoeft te schrijven. {de click events kan je niet meer met de ide doen bijvoorbeeld}

Hoop dat het duidelijk is anders zal ik het nog een keer uitlegen.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 22:24

gorgi_19

Kruimeltjes zijn weer op :9

Ik heb destijds een wrapper gemaakt en een Custom Menu Item, zodat ik menu's kon toevoegen via

Visual Basic .NET:
1
Me.AddDecisionMenu("Marketing", "frmMarketing", New frmMarketing)

Nadeel was wel dat de IDE er niet zo een fan van was met dit menu (vooral niet van de menu-items), maar hier was overheen te komen.

Wel kom ik door middel van 1 regeltje een menuitem toevoegen, inclusief verwijzing naar de form die geopend moest worden.

Sowieso ben ik wel fan ook van 'dynamische controls' en zaken dynamisch toevoegen; niet via de ide werken.

[ Voor 36% gewijzigd door gorgi_19 op 28-02-2004 00:23 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
Als je menu's wilt met icons, zal je je heil moeten zoeken tot 'custom drawn' menus.

Hiervoor zal je de events OnMeasureItem en OnDrawItem van ieder MenuItem zelf moeten implementeren.

Een simpel voorbeeldje:

Een method die je voor ieder menu-item aanroept, en waarvan je dan die events zet:

code:
1
2
3
4
5
6
7
private void CustomDrawMenu( MainMenu it )
{
   for( int i = 0 ; i < it.MenuItems.Count; i++ )
   {
    CustomDrawnItem(it.MenuItems[i]);
   }
}


code:
1
2
3
4
5
6
7
8
9
10
11
12
private void CustomDrawnItem( MenuItem it )
{               
        
   it.OwnerDraw = true;
   it.MeasureItem += new MeasureItemEventHandler(MeasureIt);
   it.DrawItem    += new DrawItemEventHandler(Drawit);
                
   for( int i = 0; i < it.MenuItems.Count; i++)
   {
       CustomDrawnItem(it.MenuItems[i]);
   }        
}


In de MeasureItem event handler moet je de 'geschatte' grootte van het menu-item berekenen, zodanig dat kan bepaald worden hoe groot je menu moet zijn.

In de DrawItem event handler moet je dan zelf je menu - item gaan 'tekenen'. Dat houdt in dat je voor iedere state (default, selected, hottracked, ...) waarin dat menu-item zich bevindt, code zult moeten gaan schrijven.
Dit omvat dus het tekenen van een Icon, het maken van de background, het wegschrijven van de text, .....

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
jordan2k schreef op 28 februari 2004 @ 00:09:
Code1 {Zo werkt het wel maar is best omslachtig}
code:
1
2
        miFile.MenuItems.Add(New IconMenuItem("&Open", New Icon("..\open.ico"), _
            handlerFile, Shortcut.CtrlO))
Wat is daar nu omslachtig aan?
Ik werk eigenlijk liefst zo, ipv de hele tijd te moeten klikken, properties instellen, ....

https://fgheysels.github.io/


  • jordan2k
  • Registratie: Juli 2001
  • Laatst online: 17-04 12:57
whoami schreef op 28 februari 2004 @ 10:43:
[...]

Wat is daar nu omslachtig aan?
Ik werk eigenlijk liefst zo, ipv de hele tijd te moeten klikken, properties instellen, ....
Nouw in de IDE wordt deze manier niet zichtbaar dus dan moet je alle propeties van menu via code instelen en dan kan het niet meer via de IDE.

maar schijnbaar is het een van de betere manier om icons toe te voegen aan een menu item.

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
Ieder z'n eigen 'goesting' natuurlijk, maar ik vind dat je sneller kunt werken door het in code te schrijven.
't Is trouwens ook makkelijker als je je applicatie in verschillende talen wilt afleveren, als je die menu's in code maakt.

https://fgheysels.github.io/

Pagina: 1