下拉箭头的宽度

时间:2010-08-03 18:27:29

标签: c# .net vb.net winforms

所以在winforms中,每个下拉组合框都有一个向右的小箭头告诉用户它是一个下拉菜单,有点像这样:

http://www.ci.berkeley.ca.us/ig_common/images/igsch_dropdown_up_o2003silver.gif http://www.ci.berkeley.ca.us/ig_common/images/igsch_dropdown_up_o2003silver.gif

现在我如何计算像素的宽度?原因是,我正在使用ControlDrawToBitmap,这不会正确地为组合框绘制文本,我可以重绘内容,我只是敲了一些箭头(正确绘制)。

2 个答案:

答案 0 :(得分:5)

首先想到的是:检查组合框按钮宽度是否跟滚动条宽度一起跟踪。可以在用户首选项中修改滚动条宽度。使用GetSystemMetrics()API获取各种滚动条的宽度。如果您更改系统滚动条宽度并且它不会影响正常组合框的大小,请忽略它。

第二个想法:使用编辑控件的格式化rect来找出编辑控件认为可用的显示区域(减去组合框)。请参阅EM_GETRECT in MSDN

然而,听起来这只是一个针对您真正问题的黑客解决方法:如果您可以让控件正确地绘制到位图,那么您就不需要这个hackery。

答案 1 :(得分:0)

我在photoshop中将其计算为9像素宽