以颜色打印c#保留关键字

时间:2012-02-18 16:26:14

标签: c# printing colors margin

好吧,在我的记事本喜欢的程序中,我想打印像代码一样的文本,所以我希望保留的单词用蓝色打印,文本在边距内任何想法怎么做? 这就是我到目前为止所做的。

    int charPag = 0;
        int linPag = 0;
        Font rodFont = new Font("Courier New", (float)10.0);

        e.Graphics.MeasureString(stringToPrint, txtMain.Font, e.MarginBounds.Size, StringFormat.GenericTypographic, out charPag, out linPag);
        e.Graphics.DrawString(stringToPrint, txtMain.Font, new SolidBrush(Color.Black), e.MarginBounds, StringFormat.GenericTypographic);
        stringToPrint = stringToPrint.Substring(charPag);

        e.Graphics.DrawLine(Pens.Black, e.MarginBounds.Left, e.MarginBounds.Bottom, e.MarginBounds.Right, e.MarginBounds.Bottom);
        e.Graphics.DrawString(numPag.ToString(), rodFont, Brushes.Black, e.MarginBounds.Right - (numPag.ToString().Length * rodFont.SizeInPoints), e.MarginBounds.Bottom + 5);
        if (stringToPrint.Length > 0)
        {
            e.HasMorePages = true;
            numPag++;
        }

1 个答案:

答案 0 :(得分:0)

创建一个包含保留字

的HashSet
public HashSet<string> _reservedWords = 
    new HashSet { "if", "else", "class", "..." };

然后,您必须找到文本行中包含的标识符。标识符是以字母或下划线开头的字符序列,由字母,下划线和数字组成。

找到标识符后,请检查它是否为保留关键字

bool reserved = _reservedWords.Contains(word);