Visibility change causes menu items to scroll (bug?)

A

Andrus

To reproduce, run code, open file menu, press up and down arrows to move out
of menu.
Menu items are scrolled and blank items appears in end.

I need to change visibility of menu items at runtime.
How to fix this ?
Is this .NET 3.5 bug ?

Andrus.


using System.Windows.Forms;

static class Program
{
static void Main()
{
Application.Run(new Form1());
}
}

class Form1 : Form
{
public Form1()
{
var menuStrip1 = new MenuStrip();
var fileToolStripMenuItem = new ToolStripMenuItem();
menuStrip1.Items.AddRange(new ToolStripItem[] {
fileToolStripMenuItem });
for (int i = 0; i < 10; i++)
{
var item = new ToolStripMenuItem("Item" + i.ToString());
fileToolStripMenuItem.DropDownItems.Add(item);
if (i < 5)
item.Visible = false;
}

fileToolStripMenuItem.Text = "File";
Controls.Add(menuStrip1);
MainMenuStrip = menuStrip1;
}
}
 
N

Nicholas Paldino [.NET/C# MVP]

Andrus,

The only immediate workaround I can see would be to not add the items if
you are not going to make them visible. I took your example and didn't add
the items if they were not visible, and didn't get that effect.

I would definitely register this bug on the Microsoft Connect site.
 
A

Andrus

The only immediate workaround I can see would be to not add the items
if you are not going to make them visible. I took your example and didn't
add the items if they were not visible, and didn't get that effect.

I have Winforms menu system designed using Windows forms Designer in MDI
parent form.
Some menu items may not be visible to user who logs in.

I have also command "login as different user" in this MDI parent form which
allows other user to log in without exiting main form.
For this command I need to make some other menu items visible.

How to make items visible/invisible in this case ?
I would definitely register this bug on the Microsoft Connect site.

Done.
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=357453

Andrus.
 
M

Manoj Gamage

Why don't you check the ToolStripMenuItem.Available property. This worked for me. I think this is similar to Visible property
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top