这是一个非常琐碎的问题,但我似乎找不到解决方法。这很烦我,因为我觉得我应该知道答案,但是我要么在寻找错误的术语,要么在寻找错误的方法和属性。

我有一个从两个地方调用的配置对话框。

第一个是从表单上的按钮正常运行-正如您所期望的那样。

第二个来自系统托盘中notifyIcon的上下文菜单,但此处显示在屏幕的左上方。理想情况下,我希望它显示在主屏幕的中央,或者可能靠近系统托盘。

  • 我尝试设置Location,但是在调用dialog.ShowDialog()时,它似乎被覆盖。
  • 我尝试过使用dialog.ShowDialog(IWin32Window)重载,但这似乎不喜欢我将null作为窗口句柄传递。
  • 我尝试改用dialog.Show(),但是(这是我可能会出错的地方)设置位置似乎没有给出一致的结果。
  • 我什至尝试设置dialog.Parent属性-当然会引发异常。

  • 我只是知道,当我(希望)看到一些答案时,我将意识到答案是显而易见的,但此刻我完全陷入了困境。

    感谢您的回答-我怀疑这很明显,但像往常一样,我总是陷入错误的路线。更烦人的是,我也使用了设计师的这个属性。

    最佳答案

    您可以将 Form.StartPosition 属性设置为FormStartPosition.Manual,然后将 Form.Location 属性设置为所需的位置。当您调用ShowDialog时,表单应显示在所需的位置。

    MyForm frm = new MyForm();
    frm.StartPosition = FormStartPosition.Manual;
    frm.Location = new Point(10, 10);
    frm.ShowDialog();
    

    关于c# - 使用ShowDialog显示对话框时如何控制对话框的位置?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/998675/

    10-13 04:30