【问题标题】:auto size of label height and width in C#C#中标签高度和宽度的自动大小
【发布时间】:2013-03-29 15:21:15
【问题描述】:

我有一个尺寸为 (47, 15) 的标签,我的表单尺寸是 (561, 270)。 当我的 label.text 比窗口大小长时,文本的最后一部分不会出现。我怎样才能动态地重新调整标签文本相对于我的窗口的高度和宽度。那是当文本比窗口长,则文本将出现在某些行而不是一行。我怎样才能做到这一点????

【问题讨论】:

    标签: c# winforms label


    【解决方案1】:

    一个基本策略是设置MaximumSize.Width 属性,这样标签就不会水平地超出窗口边缘或与另一个控件重叠。它现在会自动换行长文本,垂直添加行。

    您可能还想设置MaximumSize.Height 属性,这样高度也不会失控。在这种情况下,您还希望将 AutoEllipsis 属性设置为 True。这样用户就可以知道文本被剪裁了,并且当他将鼠标悬停在标签上时会自动显示一个工具提示。

    【讨论】:

      【解决方案2】:

      为此使用AutoSize 属性。

      【讨论】:

        【解决方案3】:

        在我的例子中,我使用了 TextRenderer.MeasureText

        using System.Windows.Forms;
        
        namespace MyApp.Views
        {
            public partial class test : Form
            {
                public Form1()
                {
                    InitializeComponent();
                    //I am getting my dynamic content from a TextBox but you can get from any other source
                    string content = myTextBox.Text;
        
        
                    myDynamicSizeLabel.Text = content;
        
                    //calculating the height using TextRenderer.MeasureText and as reference the TextBox size
                    var height = TextRenderer.MeasureText(myTextBox.CreateGraphics(), myTextBox.Text, myTextBox.Font, myTextBox.Size, TextFormatFlags.WordBreak).Height;
                    
                    //set the new size to my Label
                    myDynamicSizeLabel.Height = (height == 0 ? myDynamicSizeLabel.Height: height);
                    myDynamicSizeLabel.Width = myTextBox.Width;
                    //Autosize must be false
                    myDynamicSizeLabel.AutoSize = false;
                }
            }
        }
        

        它会产生这样的结果

        【讨论】:

          【解决方案4】:

          我一直在挠头寻找解决方案..

          使用按钮代替标签

          其他... 那么如果你想将 flatstyle 设置为 flat ang,则将边界设为 0

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2012-12-30
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-06-19
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多