1.有如下代码(显示下拉框时,屏幕最大化右键菜单的显示坐标处理):
起初:
Rectangle rect = System.Windows.Forms.SystemInformation.VirtualScreen; //获取在屏幕的坐标 Point screenPoint = this.ListTree.PointToScreen(e.Location); Point cmsPoint = new Point(e.Location.X + 5, e.Location.Y + 5);
if (screenPoint.X + this._itemContextMenuStrip.Width > rect.Width) {//超过屏幕了,反向显示 cmsPoint.X -= this._itemContextMenuStrip.Width; }
发现需要向左移动一点,故初改如下:
if (screenPoint.X + this._itemContextMenuStrip.Width > rect.Width) {//超过屏幕了,反向显示 cmsPoint.X -= this._itemContextMenuStrip.Width - 5; }
发现反而往右移动了- -,”-=”操作符的陷阱啊,一不注意就掉进去了,需要加上括号。
The End.