[英]c#: How do i add dropdown menu items at runtime
When creating a new project, i want this project to become available from a dropdown. 创建新项目时,我希望该项目从下拉列表中可用。 The first project i create, works, and is placed as the menu item as well as a dropdown item, however when i try to add the next dropdown item it crashes and tells me "Object reference not set to an instance of an object."
我创建,工作并作为菜单项和下拉菜单项放置的第一个项目,但是,当我尝试添加下一个下拉菜单项时,它崩溃并告诉我“对象引用未设置为对象的实例”。
This line creates the exception: ProjectToolStripMenuItem.DropDownItems.Add(newproject); 此行创建异常:ProjectToolStripMenuItem.DropDownItems.Add(newproject);
ArrayList projects = new ArrayList();
private void toolStripMenuItem1_Click(object sender, EventArgs e)
{
Project moldProject = new Project();
moldProject.ProjectName = "unnamed";
ToolStripMenuItem ProjectToolStripMenuItem = null;
if (projects.Count == 0)
{
ProjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
ProjectToolStripMenuItem.Name = "projectToolStripMenuItem";
ProjectToolStripMenuItem.Size = new System.Drawing.Size(44, 20);
ProjectToolStripMenuItem.Text = "unnamed*";
this.menuStrip1.Items.Add(ProjectToolStripMenuItem);
}
ToolStripMenuItem newproject = new System.Windows.Forms.ToolStripMenuItem();
string name = "aboutToolStripMenuItem" + (projects.Count + 1).ToString();
newproject.Name = name;
newproject.Size = new System.Drawing.Size(211, 22);
newproject.Text = "unnamed*";
ProjectToolStripMenuItem.DropDownItems.Add(newproject);
projects.Add(moldProject);
}
ToolStripMenuItem ProjectToolStripMenuItem = null; ToolStripMenuItem ProjectToolStripMenuItem = null;
Should have been declared outside the method. 应该已经在方法之外声明了。 Sorry for the inconvinience.
很抱歉给您带来不便。
/Thomas /托马斯
Your ProjectToolStripMenuItem is set to null and it only gets assigned a value if the projects.Count is equal to zero. 您的ProjectToolStripMenuItem设置为null,并且仅在projects.Count等于零时才被分配一个值。 This is why you get the null reference exception for the second project.
这就是为什么您为第二个项目获得空引用异常的原因。 Since projects.Count is not zero, ProjectToolStripMenuItem never gets assigned.
由于projects.Count不为零,因此永远不会分配ProjectToolStripMenuItem。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.