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

本文探讨了在.NET应用程序中使用ContextMenuStrip时遇到的中文显示不全的问题。通过添加多个ToolStripButton或手动设置宽度来解决菜单项无法完全显示中文文本的现象。

private void Form1_Load(object sender, EventArgs e)
{

}

 

下面的代码都在上面的FormLoad方法中添加。(一个vs2005新建的窗体项目)

 

代码一:

ContractedBlock.gifExpandedBlockStart.gif代码
ContextMenuStrip cms = new ContextMenuStrip();

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

cms.Items.Add(btn1);

this.ContextMenuStrip = cms;

 

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

效果:

2010072621170086.jpg

代码二:

ContractedBlock.gifExpandedBlockStart.gif代码
ContextMenuStrip cms = new ContextMenuStrip();

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

cms.Items.Add(btn1);
cms.Items.Add(btn2);

this.ContextMenuStrip = cms;

 

此段代码执行后,右键菜单显示出中国计量学院,同时中国计量学院下有一个空的菜单。

 

效果:

2010072621172569.jpg

代码三:

ContractedBlock.gifExpandedBlockStart.gif代码
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;

 

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

代码三、四效果:

2010072621173416.jpg

 

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

 

 

 

 

转载于:https://www.cnblogs.com/klvk/archive/2010/07/26/1785574.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值