Winforms 如何在C+中居中显示屏幕顶部+;WinForm?

Winforms 如何在C+中居中显示屏幕顶部+;WinForm?,winforms,c++-cli,position,center,Winforms,C++ Cli,Position,Center,我试图在屏幕顶部居中显示我的父窗体,但它只显示中心屏幕和中心父窗体,在屏幕顶部没有居中显示。 当我尝试Google时,它为我提供了大量包含最顶端功能的结果,但我对最顶端的功能不感兴趣。我希望它在屏幕顶部的位置为0,而不是在所有窗口中,我无法找到正确的参数 有人遇到过这种方法吗?您需要使用表单的位置属性 下面是一个简单的示例,它将表单向上移动到Y=0: void Form1_Load( object sender, EventArgs e ) { this.Location = new P

我试图在屏幕顶部居中显示我的父窗体,但它只显示中心屏幕和中心父窗体,在屏幕顶部没有居中显示。 当我尝试Google时,它为我提供了大量包含最顶端功能的结果,但我对最顶端的功能不感兴趣。我希望它在屏幕顶部的位置为0,而不是在所有窗口中,我无法找到正确的参数


有人遇到过这种方法吗?

您需要使用
表单的
位置
属性

下面是一个简单的示例,它将表单向上移动到
Y=0

void Form1_Load( object sender, EventArgs e )
{
    this.Location = new Point( this.Location.X, 0 );
}
编辑:下面是一个示例,它将确保表单也集中在屏幕顶部

void Form1_Load( object sender, EventArgs e )
{
    int x = (Screen.PrimaryScreen.Bounds.Width - this.Width) / 2;
    this.Location = new Point( x, 0 );
}
注意:

  • 此示例适用于C#WinForm
  • <> LI>之所以提到这个是因为你的标题是指“代码> C++ +<代码>和<代码> WiFors<代码>,这是不混的。
    你指的是C++的形式,或者是c++/CLI WiForm(我假设你不是C++的MFC表单)。
      这里有一个方法:

      public static class FormExtensions
      {
          public static void CentreTop(this Form form)
          {
              form.Location = new Point((Screen.PrimaryScreen.Bounds.Width - form.Width) / 2, 0);
          }
      }
      
      并在上下文中使用:

      public partial class Form1 : Form
          {
              public Form1()
              {
                  InitializeComponent();
      
                  this.StartPosition = FormStartPosition.Manual;
      
                  this.Resize += Reposition;
                  this.Move += Reposition;
              }
      
              private void Reposition(object sender, EventArgs e)
              {
                  this.CentreTop();      
              } 
          }
      

      如果你不想总是使用<代码>原屏幕,<>你可能想添加一些逻辑,

      这只在Frim1是用StistPosi= C++屏幕设计的时候工作,否则你就要计算C++席的参考c++/CLI WiFrase:),所以没问题——你只需要把这个解决方案翻译成C++/CLI。