private void Form1_Load(object sender, EventArgs e)
{
}
}
下面的代码都在上面的FormLoad方法中添加。(一个vs2005新建的窗体项目)
代码一:


ContextMenuStrip cms = new ContextMenuStrip();
ToolStripButton btn1 = new ToolStripButton("中国计量学院");
cms.Items.Add(btn1);
this.ContextMenuStrip = cms;
ToolStripButton btn1 = new ToolStripButton("中国计量学院");
cms.Items.Add(btn1);
this.ContextMenuStrip = cms;
此段代码执行后,右键菜单中的”中国计量学院“只能显示出“中国计量”。貌似右键菜单长度不够?
效果:
代码二:


ContextMenuStrip cms = new ContextMenuStrip();
ToolStripButton btn1 = new ToolStripButton("中国计量学院");
ToolStripButton btn2 = new ToolStripButton("");
cms.Items.Add(btn1);
cms.Items.Add(btn2);
this.ContextMenuStrip = cms;
ToolStripButton btn1 = new ToolStripButton("中国计量学院");
ToolStripButton btn2 = new ToolStripButton("");
cms.Items.Add(btn1);
cms.Items.Add(btn2);
this.ContextMenuStrip = cms;
此段代码执行后,右键菜单显示出中国计量学院,同时中国计量学院下有一个空的菜单。
效果:
代码三:


ContextMenuStrip cms = new ContextMenuStrip();
ToolStripButton btn1 = new ToolStripButton("中国计量学院");
btn1.Width =100;
cms.Items.Add(btn1);
this.ContextMenuStrip = cms;
ToolStripButton btn1 = new ToolStripButton("中国计量学院");
btn1.Width =100;
cms.Items.Add(btn1);
this.ContextMenuStrip = cms;
代码四:
ContextMenuStrip cms = new ContextMenuStrip();
ToolStripButton btn1 = new ToolStripButton("中国计量学院");
cms.Items.Add(btn1);
btn1.Width = 100;
this.ContextMenuStrip = cms;
ToolStripButton btn1 = new ToolStripButton("中国计量学院");
cms.Items.Add(btn1);
btn1.Width = 100;
this.ContextMenuStrip = cms;
代码执行后,中国计量学院完美显示出来了。
代码三、四效果:
结后语:为什么会出现上面的情况。只添加一个菜单时。右键菜单宽度不能根据显示内容动态改变。而添加多个时则显示正常。同时,如果手动设置某一菜单项(例如ToolStripButton)的宽度,则右键菜单的宽度会相应扩展。这个是什么原因呢?