C#textbox文本,如何不同行的对齐方式不同

2025-05-09 23:47:01
推荐回答(2个)
回答1:

单纯的TextBox不好弄,如果是模仿QQ,你可以看到它也不单纯是个编辑器,而是类似一个Panel里面动态的Textbox,给你个示例

        //新建Winform,拖一个Panel,产生Load事件,粘贴代码
        private void testTextAlign_Load(object sender, EventArgs e)
        {
            this.AddMsg("left", true);
            this.AddMsg("right", false);
        }

        int LastTop = 0;//最后一个TextBox的Top

        private void AddMsg(string msg, bool left)
        {
            TextBox tb = new TextBox();
            tb.BorderStyle = BorderStyle.None;
            tb.Text = msg;
            tb.TextAlign = left ?
                HorizontalAlignment.Left :
                HorizontalAlignment.Right;
            this.panel1.Controls.Add(tb);
            tb.Width = this.panel1.Width - 5;
            tb.ForeColor = left ? Color.Green : Color.Blue;
            this.LastTop += tb.Height + 5;
            tb.Top = this.LastTop;
        }

回答2:

textbox中的内容就是简单的字符串,所以没法设置这种复杂的格式。
建议你在需要右对齐的地方,在字符串前面加上一些空格,这样也能达到视觉上区分的效果。
或者使用RichTextBox实现格式控制。