【问题标题】:Center label into form [duplicate]将标签居中放入表单[重复]
【发布时间】:2019-01-13 17:28:44
【问题描述】:

我想根据表单宽度将标签居中,所以我这样做:

var formWidth = StatisticsProjectForm.ActiveForm.Width;

   var lblProjectTimeWidth = lblProjectTime.Width;

    lblProjectTime.Width = formWidth / 2 - lblProjectTimeWidth / 2;

但是当我运行程序时,它只是不在窗体的中间,我做错了什么?

【问题讨论】:

  • 链接中的大部分答案都是错误的!
  • 为什么不简单地使用左+右锚,文本居中?

标签: c# winforms


【解决方案1】:
var formWidth = StatisticsProjectForm.ActiveForm.Width;

   var lblProjectTimeWidth = lblProjectTime.Width;

    lblProjectTime.Left = formWidth / 2 - lblProjectTimeWidth / 2;

【讨论】:

  • 另外:不要忘记清除所有锚点,这样即使调整表单大小,控件也会保持居中!
【解决方案2】:

使用以下代码将标签设置为表单的中间和中心我使用 Label1 并将中心设置为表单的中间。

public Form2()
    {
        InitializeComponent();
        this.Load += new EventHandler(centerLabel);
        this.Resize += new EventHandler(centerLabel);
    }
    protected void centerLabel(object sender,EventArgs e)
    {
        this.label1.Location = new Point((this.Width / 2)-label1.Width, (this.Height / 2)-label1.Height);
    }

您还可以添加事件以调整大小和加载或使用 centerLabel 方法执行任何操作。

【讨论】:

  • 显然有人赞成你的答案,这是错误的。您甚至无法复制正确接受的答案。是label1.Width / 2而不是label1.Width,和height一样
猜你喜欢
  • 1970-01-01
  • 2014-05-26
  • 2018-05-24
  • 1970-01-01
  • 2016-01-07
  • 2015-06-20
  • 2010-10-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多