RichTextBox在C#中的Word Wraps中使用非常长的文本行并关闭Word Wrapping。

问题描述 投票:-3回答:1

我试图让一个RichTextBox停止包装长行文本。 这些长长的文本行可能非常长,有时长达数百万个字符。 这些是HL7中嵌入的PDF文件,有时可能有100多页,会产生一些极长的行。 我关闭了word wrap,并尝试调整MaxLength和RightMargin属性,将其设置为2147483647,同时尝试将其调整为文本的正确长度。 我相信这两个属性的默认值已经被设置为允许的最大长度,但我还是尝试调整它们,看看会有什么结果。 我甚至尝试用一些更短的行来测试,<150,000字符,但它仍然包裹着文本。 我的最后一次测试是~135,000个字符,我得到了12行包装的代码。 我认为它能封装12000个字符左右。 下面是组件的初始化,然后第二部分代码包括了很多我已经尝试过的东西,但我在这一点上已经注释了,因为在我尝试过的所有东西中,默认设置似乎是最好的。 我在RichTextBox的文档中找不到任何关于每行最大字符数或类似的东西。 有没有办法让极长的文本行不被包裹?

            this.richTxtHL7.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
        this.richTxtHL7.Location = new System.Drawing.Point(12, 40);
        this.richTxtHL7.Name = "richTxtHL7";
        this.richTxtHL7.Size = new System.Drawing.Size(995, 401);
        this.richTxtHL7.TabIndex = 0;
        this.richTxtHL7.Text = "";
        this.richTxtHL7.WordWrap = false;
        this.richTxtHL7.Click += new System.EventHandler(this.richTxtHL7_Click);
        this.richTxtHL7.TextChanged += new System.EventHandler(this.richTxtHL7_TextChanged);
        this.richTxtHL7.KeyUp += new System.Windows.Forms.KeyEventHandler(this.richTxtHL7_CursorMoved);

            int maxCharacters = txtManip.getMaxLineCount(ref richTxtHL7);

        //MessageBox.Show(maxCharacters.ToString());
        richTxtHL7.SuspendLayout();
        //richTxtHL7.RightMargin = maxCharacters+2000;
        //richTxtHL7.RightMargin = int.MaxValue - 1000;
        //richTxtHL7.MaxLength = maxCharacters + 2000;
        //richTxtHL7.MaxLength = int.MaxValue - 1000;
        //richTxtHL7.RightMargin = 2147483647;
        //richTxtHL7.MaxLength = 2147483647;
        richTxtHL7.Text = richTxtHL7.Text;
        richTxtHL7.Text += "\n WordWrap=" + richTxtHL7.WordWrap.ToString()
                        + "\n RightMargin=" + richTxtHL7.RightMargin.ToString()
                        +"\n MaxLenght=" + richTxtHL7.MaxLength.ToString();
        richTxtHL7.ResumeLayout();
c# richtextbox
1个回答
0
投票

如果是WinForms,我相信RichTextBox的右边距被定义为一个Int32,如果不为零,实际上将施加一个行长。

试着将右边距设置为0。

© www.soinside.com 2019 - 2024. All rights reserved.