C#需要帮助编辑我的行编号代码

时间:2013-02-28 03:25:05

标签: c# return word-wrap line-numbers

我有一个行编号的代码,它对常规方式的编号行完全正常,但我正在寻找一些不同的东西。我希望我的代码只能在按Enter键时计算换行符(程序收到返回键码),然后文本框会自动用换行符剪切行。这是我现在正在使用的代码:

//Instructions
    int maxLC = 1; //maxLineCount - should be public
    private void InstructionsSyncTextBox_KeyUp(object sender, KeyEventArgs e)
    {
        int linecount = InstructionsSyncTextBox.GetLineFromCharIndex(InstructionsSyncTextBox.TextLength) + 1;
        if (linecount != maxLC)
        {
            InstructionsLineNumberSyncTextBox.Clear();
            for (int i = 1; i < linecount + 1; i++)
            {
                InstructionsLineNumberSyncTextBox.AppendText(Convert.ToString(i) + "\n");
            }
            maxLC = linecount;
        }
    }

我认为我最简单的方法就是每当有人按下输入列表时保存行数,每次有人按下输入时都会更新行号,并在列表中的位置更新行号。但我不知道如何检测返回何时被删除。有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

计算您发布的代码中的行的非常基本的示例:

    class Program
    {
        static void Main(string[] args)
        {
            string stringFromTextBox = 
@"  int maxLC = 1; //maxLineCount - should be public
    private void InstructionsSyncTextBox_KeyUp(object sender, KeyEventArgs e)
    {
        int linecount = InstructionsSyncTextBox.GetLineFromCharIndex(InstructionsSyncTextBox.TextLength) + 1;
        if (linecount != maxLC)
        {
            InstructionsLineNumberSyncTextBox.Clear();
            for (int i = 1; i < linecount + 1; i++)
            {
                InstructionsLineNumberSyncTextBox.AppendText(Convert.ToString(i) + ""\n"");
            }
            maxLC = linecount;
        }
    }";
            Regex r = new Regex("\r", RegexOptions.Multiline);
            int lines = r.Matches(stringFromTextBox).Count;
            //You'll need to run this line every time the user presses a key

        }
    }