首页 文章

标签从右向左增长

提问于
浏览
55

我的表格上有一个标签,位于表格的右侧 . 此标签加载动态文本 .

有时它加载的文本太长,文本越过表单的边框,这是一些文本不在表单中 .

我想让标签从右到左而不是从左到右 . 我该如何实现这一目标?

6 回答

  • 0

    我的问题是我的标签是在一个面板中,我做的任何事情都没有用 .

    我做的是将标签放在 TableLayoutPanel 控件中,并将TableLayoutPanel的 RightToLeft 属性设置为 True ;这样做了 .

  • 1

    您可以't make it 2403815 , but you can assign it' s Left 属性,以便它不会超出表单:

    label1.Text = "some dynamic text here...";
    if (label1.Right > this.Width)
        label1.Left = this.Width - label1.Width;
    

    如果设计允许,您还可以将其高度加倍,以使文本跨越两行 .

  • 6

    您可以使用TableLayoutPanel或其他兼容的容器控件,而是为容器设置RightToLeft属性设置Dock =“Right”作为标签

    设置RightToLeft属性并不总是给出预期的结果,因为某些字符串格式的字符串被修改,改变了单词的顺序 .

  • 69

    我通过设置标签解决了这个问题

    AutoSize property to false

    TextAlignMiddleRight

    Anchorright .

    请注意,标签大小本身并没有随文本增长,但您可以通过为其提供足够宽度来适应内容来处理它 . 视觉效果是一样的 .

  • 3

    你可以写下来:

    public enum Leftorright { left,right}
        private Leftorright _LeftToRight = Leftorright.left;
        public Leftorright LeftToRight
        {
            get { return _LeftToRight; }
            set { _LeftToRight = value; }
        }
    
    
        protected override void OnTextChanged(EventArgs e)
        {
            int oldWidth;
            oldWidth = this.Width;
            base.OnTextChanged(e);
            if (LeftToRight == Leftorright.right && this.Width != oldWidth)
            {
                this.Left = this.Left - this.Width + oldWidth;
            }
        }
    
  • 22
    using System.Windows.Forms;
    
    /// <summary>
    /// The position of myLabel to the left of the otherControl component when entering 
    /// text "s". 
    /// You must set myLabel.AutoSize = true
    /// </summary>
    /// <param name="s">text</param>
    void WriteText(string s)
    {
        int len = TextRenderer.MeasureText ( s, myLabel.Font ).Width;
        myLabel.Left = otherControl.Left - 5 - len;
        myLabel.Text = s;
    }
    

相关问题