Nevron Forum

Change menu font

https://www.nevron.com/Forum/Topic5171.aspx

By Jan Dijkstra - Tuesday, May 31, 2011

I have the following code:

public void SetMenuEnabled(bool isEnabled)
{
   foreach (NCommandContext context in (myCommandManager.Contexts))
   {
       if(context.Properties.Text == "test")
       {
           context.Properties.Selectable = isEnabled;
           context.Properties.Font = new Font(context.Properties.Font.Name, context.Properties.Font.Size, FontStyle.Bold);
       }
   }
}

myCommandManager is an NCommandBarsManager.
When I run this code I get an NullReferenceEception. And when I hover with the mouse, it says that .Font = null.
The setting of the Selectable property works all fine when I comment the .Font line...

How can I set the .Font property?

 

By Nevron Support - Tuesday, May 31, 2011

Hello Jan,

NCommandContext.Properties.Font property by default is null, so I guess you didn't set it before.
You can check whether is null and if so, you can set it to the NCommandBarsManager.ParentControl.Font which should be the Form or other control that Command Bars Manager resides.

It may look similar to this:

int nCount = nCommandBarsManager1.Contexts.Count;

for (int i = 0; i < nCount; i++)
{
NCommandContext context = myCommandManager.Contexts[i];
context.Properties.Selectable = isEnabled;
Font contextFont = context.Properties.Font;
if (contextFont != null)
{
Font f = new Font(contextFont, FontStyle.Bold);
context.Properties.Font = f;
}
else
{
Font f = new Font(myCommandManager.ParentControl.Font, FontStyle.Bold);
}
}

I hope it helps.