将文本居中放在WinForms应用程序中的按钮上

Wes*_*dom 5 c# winforms

我有一个简单的Windows窗体应用程序tabControl.我有3个面板tabControl,每个面板有5个按钮.第一组按钮上的文本是硬编码的,但是当您从第一组中单击一个按钮时,下一组将填充,然后当您单击第二组中的一个按钮时,最后一组会再次发生相同的事情.在[Design]视图中,我手动设置TextAlign每个按钮的属性MiddleCenter.但是,当我运行应用程序时,中间按钮组上的文本永远不会居中.它始终是TopLeft对齐的.TextAlign每次我以编程方式设置按钮文本时,我都尝试更改字体大小甚至显式设置属性,如下所示:

private void setButtons(List<string> labels, Button[] buttons)
    {
        for (int i = 0; i < buttons.Count(); i++)
        {
            if (i < labels.Count)
            {
                buttons[i].Text = labels.ElementAt(i);
                buttons[i].TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
                buttons[i].Enabled = true;
            }
            else
            {
                buttons[i].Text = "";
                buttons[i].Enabled = false;
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

此图像显示结果: 对齐问题

有没有人对我遗失的东西有任何想法?

Ser*_*kiy 4

修剪您分配给按钮的文本。您也可以通过索引引用标签,而无需调用ElementAt

private void setButtons(List<string> labels, Button[] buttons)
{
    for (int i = 0; i < buttons.Count(); i++)
    {
        Button button = buttons[i];

        if (i < labels.Count)
        {
            button.Text = labels[i].Trim(); // trim text here
            // button.TextAlign = ContentAlignment.MiddleCenter;
            button.Enabled = true;
        }
        else
        {
            button.Text = "";
            button.Enabled = false;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)