none
坐标转换对吗? RRS feed

  • 问题

  •  private void dgrView_MouseUp(object sender, MouseEventArgs e)
            {
                Point p = new Point(e.X, e.Y);
                p = PointToScreen(p);
                contextMenuStrip1.Show(p, ToolStripDropDownDirection.BelowRight);
            }
    我怎么感觉菜单的显示位置,不对,是这样写的吗?
    2009年10月31日 11:20

答案

  • 不需要,将 Form.StartPosition 设置为 Manual, 然后直接设置 Form.Location 就行了
    知识改变命运,奋斗成就人生!
    • 已标记为答案 male110 2009年11月2日 2:58
    2009年11月2日 2:50
    版主
  • 你好!
         如果想弹出新窗体,需要进行坐标转换,需要这样:
         Form2 form2 = new Form2();
         form2.StartPosition = FormStartPosition.Manual;
         form2.Location = new Point(0, 0);//这里使用的坐标是相对与屏幕左上角的,所以这个窗体会显示在屏幕的左上角!
         form2.Show();
    周雪峰
    • 已标记为答案 male110 2009年11月3日 2:36
    2009年11月2日 9:28
    版主

全部回复

  • private void dgrView_MouseUp(object sender, MouseEventArgs e)
            {
                Point p = new Point(e.X, e.Y);
                //p = PointToScreen(p);
                contextMenuStrip1.Show(p, ToolStripDropDownDirection.BelowRight);
            }

    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!My blog~~~
    2009年10月31日 14:46
    版主
  • 你好!
         ContextMenuStrip.Show()方法里使用的坐标是上下文菜单相对于父控件的坐标,这里并不需要转化成屏幕坐标!
    周雪峰
    • 已标记为答案 male110 2009年11月2日 2:58
    • 取消答案标记 male110 2009年11月3日 2:36
    2009年11月1日 9:07
    版主
  • 收到,谢谢。
    如果这里我是想弹出一个窗口,想定位窗口的位置,需要进行坐标转换吗?
    2009年11月2日 2:40
  • 不需要,将 Form.StartPosition 设置为 Manual, 然后直接设置 Form.Location 就行了
    知识改变命运,奋斗成就人生!
    • 已标记为答案 male110 2009年11月2日 2:58
    2009年11月2日 2:50
    版主
  • 你好!
         如果想弹出新窗体,需要进行坐标转换,需要这样:
         Form2 form2 = new Form2();
         form2.StartPosition = FormStartPosition.Manual;
         form2.Location = new Point(0, 0);//这里使用的坐标是相对与屏幕左上角的,所以这个窗体会显示在屏幕的左上角!
         form2.Show();
    周雪峰
    • 已标记为答案 male110 2009年11月3日 2:36
    2009年11月2日 9:28
    版主
  • 这个是要转换的,比如是单击的GridView,要用GridView控件的PointToScrieen,或者,contextMenuStrip1.Show(gridview1,p, ToolStripDropDownDirection.BelowRight);
    2009年11月3日 2:38