我有以下C#代码(.NET Framework 3.5)
public partial class MainForm : Form
{
public MainForm()
{
//
// The InitializeComponent() call is required
// for Windows Forms designer support.
//
Label myControl = new Label();
myControl.Text = "TEXT";
myControl.FlatStyle = FlatStyle.System;
myControl.AutoSize = true;
myControl.BorderStyle = BorderStyle.FixedSingle;
myControl.Padding = new Padding(0);
myControl.Margin = new Padding(0);
this.Controls.Add(myControl);
InitializeComponent();
}
}
它应该显示一个标签,文本由边框包围,如下所示:
------
|TEXT|
------
相反,我得到了这个:
--------
|TEXT |
--------
我不知道为什么...我的目标是能够有多个标签,它们之间没有空格,就像这样:
-----------
|TEXT|TEXT|
-----------
我错过了什么吗?先谢谢你了!
为了澄清,我需要在文本和边框之间没有空间。
2条答案
按热度按时间zu0ti5jz1#
这是为我解决的问题(使用@LarsTech的解决方案):
我补充道
我的标签定义。
我还补充说
非常感谢您的帮助!
wmvff8tz2#
我不知道
FlatStyle
属性是怎么回事,只能说FlatStyle.System
对我的系统有类似的影响。其他FlatStyle
值清楚地表明了对控件的影响,但FlatStyle.System
非常模糊。控件的外观由用户的操作系统确定。
我不确定操作系统中的什么在控件的布局中起作用。LarsTech关于将其更改为
FlatStyle.Standard
(或任何其他值)的评论为我解决了这个问题 (并且不会删除任何文本,正如您的评论所示)。可以通过将对齐行为显式设置为中心来替代对齐行为:
我不确定你到底想实现什么 (因为似乎你可以只在一个 *
Label
中输入所有文本, 而不是多个彼此相邻)*,但你可能还想删除边框样式:而且,类似于Blablablaster所说的,考虑使用
FlowLayoutPanel
并将Label
控件添加到其中。你可以把上面的代码放在一个循环中,把每一个都添加到面板中,它会为你把它们一个接一个地安排好。