65.9K
CodeProject 正在变化。 阅读更多。
Home

C# 中的 RichText 控件行号

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.89/5 (21投票s)

2009年8月10日

CDDL

3分钟阅读

viewsIcon

167833

downloadIcon

7456

为自动调整大小的富文本框显示行号。这是从另一篇 VB.NET 编写的文章转换过来的版本。

引言

请稍候,更多详情正在更新中。

本文是将 VB.NET 项目转换为 C# 的项目,最初由 nogChoco 在文章“LineNumbers for the RichTextBox”中创建。

当然,任何人都可以创建一个行号用户控件。我为 VB 3.0 到 6.0 和 C++ 制作了许多变体,总是使用 picture boxes 或其他东西作为绘图基础来标记位置。当 Microsoft 发布了更新版本的RichText控件框(在更新的版本中)时,旧的方法就过时了。我的意思是,可以通过按住 Ctrl(或 Shift)键并使用鼠标滚轮轻松地放大和缩小该框,这对传统方法造成了巨大的问题。

问:为什么使用RichText而不是传统的TextBox
答:(在旧版本中)RichText可以容纳更多数据!(并提供更多功能)

LineNumbers.png

编译前须知

我已成功地在 Visual Studio 2008 和 SharpDevelop 3.x 中使用 Framework 2.0 编译并运行了此示例项目。

您可能在 VS 2005 及更低版本中运行此示例项目时遇到问题,请注意该控件在 Framework 2.0 下可以正常工作如果您在 VS 2005 或其他 IDE 中运行此程序时遇到问题,您可能需要找到一个项目转换器或升级您的 IDE。如果这对您造成不便,我深感抱歉,这也是为什么此文章发布给中级和高级用户的原因。

如果您想要一个可以运行此程序的免费 IDE,可以尝试SharpDevelop IDE

编译您自己的项目

LineNumbers_-_ex3.png

使用 SharpDevelop (3.x)

  1. 创建一个新的 C# Windows 项目
  2. 向您的项目添加引用(右键单击“References”>“Add Reference”)
  3. 在 GAC 选项卡中选择:“Microsoft.VisualBasic
  4. 将现有项插入您的项目中..“linenum_rtf.cs
  5. 在 Custom Components 下,将“LineNumbers_For_RichTextBox”插入您的窗体,并插入一个RichTextBox
  6. 将它们并排放置(默认在左侧)
  7. 将行号链接到您的RichTextBox
    1. 在“Add LineNumbers to”>“Parent Rich Text Box”下
    2. 选择您要添加行号的RichTextBox
    3. (可以随意自行自定义)
  8. 运行项目!

使用 Visual Studio (2008)

  1. 创建一个新的 C# Windows 项目
  2. 向您的项目添加引用(右键单击“References”>“Add Reference”)
  3. 在 .NET 选项卡中选择:“Microsoft.VisualBasic
  4. 将现有项插入您的项目中...“linenum_rtf.cs
  5. 构建您的项目!
    1. 此操作在您先构建项目之前不会在 Custom Components 下显示!
  6. 在 Custom Components 下,将“LineNumbers_For_RichTextBox”插入您的窗体,并插入一个RichTextBox
  7. 将它们并排放置(默认在左侧)
  8. 将行号链接到您的RichTextBox
    1. 在“Add LineNumbers to”>“Parent Rich Text Box”下
    2. 选择您要添加行号的RichTextBox
    3. (可以随意自行自定义)
  9. 运行项目!

背景和要点

与所有软件设计师/开发人员一样,时间对于按时完成截止日期至关重要!此RichText控件示例效果很好!特别是其使用鼠标滚轮的缩放功能,并且添加了易于自定义的美观图形功能。但是,我迫切需要用 C# 编程,而此示例仅以 VB.NET 提供...是时候升级它了,现在,继续!

历史

  • 2009.08.05 - 从 VB.NET 初次转换为 C#
  • 2009.08.08 - 更新此页面上的注释(图片即将到来)

待办事项

  • 提供 2 个版本
    • 图形版:当前版本(可自定义且美观)
    • 简洁版:侧边栏简单且对您的项目有低开销
  • 剥离对Microsoft.VisualBasic的引用,使其更纯粹的 C#

- Damian J. Suess,Xeno Innovations, Inc. [2000-2009]

© . All rights reserved.