如何使c# winform中的label垂直居中
要使C# WinForm中的Label垂直居中,可以使用以下方法:
- 使用TableLayoutPanel控件:将Label放置在一个TableLayoutPanel的单元格中,并将Label的Dock属性设置为Fill,然后将TableLayoutPanel的RowStyle设置为百分之百的大小,并将Alignment属性设置为MiddleCenter。
TableLayoutPanel tableLayoutPanel1 = new TableLayoutPanel();
Label label1 = new Label();
tableLayoutPanel1.RowStyles.Clear();
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
tableLayoutPanel1.Controls.Add(label1, 0, 0);
label1.Dock = DockStyle.Fill;
label1.TextAlign = ContentAlignment.MiddleCenter;
- 使用自定义控件:创建一个自定义控件,继承自Label,并重写OnPaint方法,在方法中使用Graphics的DrawString方法来绘制文本,并将字符串位置设置为控件的中心。
public class VerticalCenterLabel : Label
{
protected override void OnPaint(PaintEventArgs e)
{
using (StringFormat format = new StringFormat())
{
format.LineAlignment = StringAlignment.Center;
format.Alignment = StringAlignment.Center;
e.Graphics.DrawString(Text, Font, new SolidBrush(ForeColor), ClientRectangle, format);
}
}
}
然后,在窗体中使用该自定义控件来代替标准的Label控件。
VerticalCenterLabel label1 = new VerticalCenterLabel();
label1.Text = "垂直居中";
label1.Dock = DockStyle.Fill;
通过上述方法,可以轻松实现C# WinForm中Label的垂直居中效果。
原文地址: https://www.cveoy.top/t/topic/jevS 著作权归作者所有。请勿转载和采集!