当用数字填充线条时,如何使线条平滑移动到右边?

时间:2017-07-14 18:30:30

标签: c# .net winforms

private void AddNumbersToLines(RichTextBox Rchtxt, int PadValue)
        {
            List<string> lines = new List<string>();
            padnumbers = new List<string>();
            lines = richTextBox1.Lines.ToList();

            for (int i = 0; i < lines.Count; i++)
            {
                string padnumber = (i + 1).ToString("D" + PadValue);
                padnumbers.Add(padnumber);

                lines[i] = padnumber + " " + oldlines[i];
            }
            Rchtxt.Lines = lines.ToArray();
        }

仅为数字着色

private void RichTextboxColorFirstLetter(RichTextBox Rchtxt, Color color)
        {
            if (padnumbers.Count > 0)
            {
                for (int i = 0; i < padnumbers.Count; i++)
                {
                    string text = Rchtxt.Lines[i].Substring(0, padnumbers[i].Length);
                    Rchtxt.Select(Rchtxt.GetFirstCharIndexFromLine(i), text.Length);
                    Rchtxt.SelectionColor = color;
                }
            }
        }

numericupdown事件

private void numericUpDown1_ValueChanged(object sender, EventArgs e)
        {
            AddNumbersToLines(richTextBox1, (int)numericUpDown1.Value);

            richTextBox1.SelectAll();
            richTextBox1.SelectionColor = Color.Black;
            RichTextboxColorFirstLetter(richTextBox1, Color.Red);
        }

在构造函数

oldlines = richTextBox1.Lines.ToList();
AddNumbersToLines(richTextBox1, 5);
RichTextboxColorFirstLetter(richTextBox1, Color.Red);

oldlines和padnumbers是List type

有两个问题。

第一种是当我按下数字按钮按钮在程序运行时向上或向下更改值而不是逐个点击但是不停地按下它,它的填充正常但开始慢,然后变得越来越快。如何从一开始就快速添加和填充数字?

第二个问题是如果有行例如:

001            hello world

当我更改numericupdown中大多数行的值时,填充号和文本之间有一个空格,如:001 Hello 所以它会根据填充号向右推。

001 Hello.....0001 Hello.....0001 Hello

但如果它像第一个例子那样:

001            hello world......001           hello world......001          hello world

它不会推动你好世界,直到它完成填充所有空间,如下:

      001      hello world......001           hello world......001          

我需要以某种方式找到填充数和每行中的文本之间有多少空格,并在每次更改numericupdown值时保持添加相同数量的空格。但不知道该怎么做。

0 个答案:

没有答案