C# 将标签向右移动,以避免重叠

C# 将标签向右移动,以避免重叠,c#,winforms,label,overlapping,C#,Winforms,Label,Overlapping,我有两个紧挨着的标签。这些标签的值在运行时更改。 现在,如果第一个标签的文本很长,那么它与第二个标签重叠 我想要的是第二个标签向右移动以避免重叠 这可能吗 这是我的密码: // // labelName // this.labelName.AutoSize = true; this.labelName.BackColor = System.Drawing.Color.Transparent; this.labe

我有两个紧挨着的标签。这些标签的值在运行时更改。 现在,如果第一个标签的文本很长,那么它与第二个标签重叠

我想要的是第二个标签向右移动以避免重叠

这可能吗

这是我的密码:

 // 
        // labelName
        // 
        this.labelName.AutoSize = true;
        this.labelName.BackColor = System.Drawing.Color.Transparent;
        this.labelName.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
        this.labelName.ForeColor = System.Drawing.Color.White;
        this.labelName.Location = new System.Drawing.Point(6, 1);
        this.labelName.Name = "labelName";
        this.labelName.Size = new System.Drawing.Size(93, 16);
        this.labelName.TabIndex = 55;
        this.labelName.Tag = "useHeaderImage Core";
        this.labelName.Text = "Name";
        // 
        // labelShareSize
        // 
        this.labelShareSize.AutoSize = true;
        this.labelShareSize.BackColor = System.Drawing.Color.Transparent;
        this.labelShareSize.Font = new System.Drawing.Font("Tahoma", 8.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel, ((byte)(0)));
        this.labelShareSize.ForeColor = System.Drawing.Color.White;
        this.labelShareSize.Location = new System.Drawing.Point(206, 3);
        this.labelShareSize.Name = "labelShareSize";
        this.labelShareSize.Size = new System.Drawing.Size(46, 11);
        this.labelShareSize.TabIndex = 56;
        this.labelShareSize.Tag = "useHeaderImage Core";
        this.labelShareSize.Text = "ShareSize";

感谢

当labelName的大小改变时,一种方法可以是调整labelShareSize的位置。下面是一些使用SizeChanged事件执行此操作的示例代码

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        // attach this event handler before the text/size changes
        labelName.SizeChanged += labelName_SizeChanged;

        labelName.Text = "really really really really long text gets set here.........................";
    }

    void labelName_SizeChanged(object sender, EventArgs e)
    {
        AdjustLabelPosition();
    }

    private void AdjustLabelPosition()
    {
        if (labelShareSize.Left < labelName.Location.X + labelName.Width)
            labelShareSize.Left = labelName.Location.X + labelName.Width;
    }
}
公共部分类表单1:表单
{
公共表格1()
{
初始化组件();
//在文本/大小更改之前附加此事件处理程序
labelName.SizeChanged+=labelName_SizeChanged;
labelName.Text=“此处设置非常长的文本……”;
}
void labelName_SizeChanged(对象发送方,事件参数e)
{
可调整位置();
}
私人职位
{
if(labelShareSize.Left
一种方法是在labelName的大小发生变化时调整labelShareSize的位置。下面是一些使用SizeChanged事件执行此操作的示例代码

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        // attach this event handler before the text/size changes
        labelName.SizeChanged += labelName_SizeChanged;

        labelName.Text = "really really really really long text gets set here.........................";
    }

    void labelName_SizeChanged(object sender, EventArgs e)
    {
        AdjustLabelPosition();
    }

    private void AdjustLabelPosition()
    {
        if (labelShareSize.Left < labelName.Location.X + labelName.Width)
            labelShareSize.Left = labelName.Location.X + labelName.Width;
    }
}
公共部分类表单1:表单
{
公共表格1()
{
初始化组件();
//在文本/大小更改之前附加此事件处理程序
labelName.SizeChanged+=labelName_SizeChanged;
labelName.Text=“此处设置非常长的文本……”;
}
void labelName_SizeChanged(对象发送方,事件参数e)
{
可调整位置();
}
私人职位
{
if(labelShareSize.Left