我有一个下拉菜单,它每次打开时都会被动态填充,下面是这样做的逻辑:
private void joysticksToolStripMenuItem_DropDownOpening(object sender, EventArgs e)
{
_joysticks = _joystickWrapper.FindDevices(DeviceType.Joystick);
joysticksToolStripMenuItem.DropDownItems.Clear();
foreach (var di in _joysticks)
{
var item = new ToolStripMenuItem(di.ProductName);
item.Checked = di.InstanceGuid == _joystickWrapper.CurrentDeviceInfo.InstanceGuid;
joysticksToolStripMenuItem.DropDownItems.Add(item);
}
}当我运行应用程序时,我看到的是:

支票在错误的地方,蓝色区域太宽了。
有什么办法解决这个问题吗?整个菜单都是System.Windows.Forms,在整个应用程序中没有自定义的可视代码。
我在当前的计算机(Windows 10 Build 9926)和开发服务器(Server2012R2)上尝试了相同的结果。我还将其编译到NetFramework4.5和4.5.1
编辑
对于那些感兴趣的人,下面是这个项目的git:
发布于 2015-12-22 20:02:57
我遇到了同样的问题,最终通过将MenuStrip的MenuStrip属性设置为16,16 (它被设置为32,32,可能是因为我在一台较高的DPI机器上编辑了表单),终于解决了这个问题。
https://stackoverflow.com/questions/28930866
复制相似问题