• “-="的陷阱


    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.

      

  • 相关阅读:
    Linux常用命令大全详解
    C++语言关键字及注解
    求两数的最大公约数
    ICOP完成端口详解
    C/C++常见面试题
    猴子吃桃问题之《C语言经典案例分析》
    DTD
    DTD
    DTD的使用
    Rust
  • 原文地址:https://www.cnblogs.com/wishFreedom/p/3683813.html
Copyright © 2020-2023  润新知