【问题标题】:Form opening on top-left of screen窗体在屏幕左上角打开
【发布时间】:2016-08-12 06:43:43
【问题描述】:

我有一个我想在父窗体的中心打开的 winform,它已经是 mdiChild(即我不能在父窗体上设置 mdiContainer)。下面是我使用的代码。我创建的表单总是在我分配给它的任何父级的左上角打开,这令人沮丧......

        loadingCircle = new Loading(Title);
        loadingCircle.TopLevel = false;
        loadingCircle.Parent = this;
        loadingCircle.Show();
        loadingCircle.BringToFront();

我已经在设计器中将StartPosition 切换为CenterParent,但它似乎没有做任何事情......

我是否遗漏了一些明显的东西?

【问题讨论】:

标签: c# winforms


【解决方案1】:

要到达屏幕中心,

你可以使用任何一个:

   loadingCircle.StartPosition = FormStartPosition.CenterScreen;

或者:

loadingCircle.ShowDialog();

或者试试这个代码来找到中心位置:

  Form loadingCircle = new frmLoading();
        loadingCircle.StartPosition = FormStartPosition.Manual;
        loadingCircle.Location = new Point(this.Location.X + (this.Width - loadingCircle.Width) / 2, this.Location.Y + (this.Height - loadingCircle.Height) / 2);
        loadingCircle.Show(this);

【讨论】:

  • 我不想使用 ShowDialog() 因为我仍然希望用户能够与 UI 交互。还有其他建议吗?
  • 我使用了一些细微的变化,但是确实有效! loadingCircle = new LoadingCircle(RegisterTitle); loadingCircle.TopLevel = false; loadingCircle.Parent = this; Point startPosition = new Point((this.Parent.Width / 2 - loadingCircle.Width / 2), (this.Parent.Height / 2 - loadingCircle.Height / 2)); loadingCircle.Location = startPosition; loadingCircle.Show(); loadingCircle.BringToFront();
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-03
  • 2021-09-26
  • 2017-12-03
  • 2012-10-12
  • 1970-01-01
  • 2015-09-28
  • 1970-01-01
相关资源
最近更新 更多