代码改变世界

C#contextmenustrip长度问题 右键快捷菜单上的文字不能完全显示

2010-07-26 21:23  kwjlk  阅读(1261)  评论(2)    收藏  举报

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;

 

此段代码执行后,右键菜单中的”中国计量学院“只能显示出“中国计量”。貌似右键菜单长度不够?

效果:

代码二:

代码
ContextMenuStrip cms = new ContextMenuStrip();

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;

 

代码四:

ContextMenuStrip cms = new ContextMenuStrip();

ToolStripButton btn1
= new ToolStripButton("中国计量学院");

cms.Items.Add(btn1);

btn1.Width
= 100;

this.ContextMenuStrip = cms;

 

代码执行后,中国计量学院完美显示出来了。

代码三、四效果:

 

结后语:为什么会出现上面的情况。只添加一个菜单时。右键菜单宽度不能根据显示内容动态改变。而添加多个时则显示正常。同时,如果手动设置某一菜单项(例如ToolStripButton)的宽度,则右键菜单的宽度会相应扩展。这个是什么原因呢?