【问题标题】:Dynamic button text align to Left动态按钮文本左对齐
【发布时间】:2021-10-23 07:02:38
【问题描述】:

我需要在 C# WinForms 应用程序上水平左对齐按钮的文本。所有按钮都是动态创建的。我尝试了以下几种方法。但没用。

private void dynBtnClick(string btnText)  //Dynamic Text List In flp2
{
    string[] listData = File.ReadAllLines(filePath + @"\" + btnText + ".txt");
    
    int e=listData.Count();
   

    flp2.FlowDirection = FlowDirection.LeftToRight;

    flp2.Controls.Clear();
    for ( int j =0; j<e;j++)
    {
      
        Guna.UI2.WinForms.Guna2Button iBtn = new Guna.UI2.WinForms.Guna2Button();

        iBtn.Tag = j;
        iBtn.BorderRadius = 5;
        iBtn.Height = 25;
        iBtn.Width = 200;
        iBtn.AutoSize = false;
        iBtn.Animated = true;
        iBtn.FillColor = ColorTranslator.FromHtml("#263238");

        iBtn.TextAlign = ContentAlignment.MiddleLeft;

        string[] btnFacetext = listData[j].Split('~');
        iBtn.Text = btnFacetext[0].ToString();

      
        iBtn.Click += (s, c) => { flp2Action(btnFacetext[0]+"~"+ btnFacetext[1], btnText); };
        flp2.Controls.Add(iBtn);
    }
}

不适合我。

iBtn.TextAlign = Left; 
iBtn.TextAlign = ContentAlignment.MiddleLeft;

这是当前按钮状态(用红线标记)。需要文本左对齐。请帮忙。

【问题讨论】:

  • 这不是标准按钮,而是第三方自定义控件。当您键入 iBtn.TextAlign = 并按空格键时,Intellisense 会提示什么?当然不是Left。此控件是否使用默认的ContentAlignment 枚举?您是否关闭智能感知?顺便说一句,这个:flp2.Controls.Clear(); 正在泄漏资源,而其他东西很少。

标签: c# winforms button text-align


【解决方案1】:

Guna.UI2.WinForms.Guna2Button.TextAlign 的类型是 HorizontalAlignment 而不是 ContentAlignment

iBtn.TextAlign = HorizontalAlignment.Left;

【讨论】: