其他语言

本类阅读TOP10

·基于Solaris 开发环境的整体构思
·使用AutoMake轻松生成Makefile
·BCB数据库图像保存技术
·GNU中的Makefile
·射频芯片nRF401天线设计的分析
·iframe 的自适应高度
·BCB之Socket通信
·软件企业如何实施CMM
·入门系列--OpenGL最简单的入门
·WIN95中日志钩子(JournalRecord Hook)的使用

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
利用TextEditorControl控件现代码语法高亮显示

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

/**********************************************************************************************
 * 创建时间: 2005-1-19 16:32:06
 * 作者:  Jack
 * 
 * 介绍:  一个利用ICSharpCode.TextEditor.TextEditorControl控件
 *    实现代码语法高亮显示的示例程序,需要引用ICSharpCode.TextEditor.dll文件
 *    该文件可以在#develop的库中找到
 **********************************************************************************************/

#region UsingBlock

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using ICSharpCode.TextEditor;
using ICSharpCode.TextEditor.Gui.CompletionWindow;
using ICSharpCode.TextEditor.Document;
using ICSharpCode.TextEditor.Actions;

#endregion

namespace HighLightingCodeFile
{
 /// <summary>
 /// ICSharpCode.TextEditor.
 /// TextEditorControl的示例程序
 /// </summary>
 public class TestCSharpTextBox : System.Windows.Forms.Form
 {
  #region 私有属性

  private ICSharpCode.TextEditor.TextEditorControl textEditorControl;
  private System.Windows.Forms.MainMenu mainMenu;
  private System.Windows.Forms.MenuItem menuItem1;
  private System.Windows.Forms.MenuItem OpenMenu;
  private System.Windows.Forms.MenuItem Save;
  private System.Windows.Forms.SaveFileDialog saveFileDialog;
  private System.Windows.Forms.OpenFileDialog openFileDialog;
  private System.Windows.Forms.MenuItem menuItem2;
  private System.Windows.Forms.MenuItem menuItem3;
  private System.Windows.Forms.MenuItem menuItem4;
  private System.Windows.Forms.MenuItem menuItem5;
  private System.Windows.Forms.MenuItem menuItem6;
  private System.Windows.Forms.MenuItem menuItem7;
  private System.Windows.Forms.MenuItem menuItem8;
  
  #endregion
  
  #region 属性
  
  #endregion
  
  #region 构造函数
  
  public TestCSharpTextBox()
  {
   //
   // Windows 窗体设计器支持所必需的
   //
   InitializeComponent();

   textEditorControl.Document.HighlightingStrategy =
    HighlightingStrategyFactory.CreateHighlightingStrategy("C#");
   textEditorControl.Encoding = System.Text.Encoding.Default;
  }
  
  #endregion
  
  #region 私有方法
 
  #region Windows 窗体设计器生成的代码
  /// <summary>
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void InitializeComponent()
  {
   System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(TestCSharpTextBox));
   this.textEditorControl = new ICSharpCode.TextEditor.TextEditorControl();
   this.mainMenu = new System.Windows.Forms.MainMenu();
   this.menuItem1 = new System.Windows.Forms.MenuItem();
   this.OpenMenu = new System.Windows.Forms.MenuItem();
   this.Save = new System.Windows.Forms.MenuItem();
   this.menuItem2 = new System.Windows.Forms.MenuItem();
   this.menuItem3 = new System.Windows.Forms.MenuItem();
   this.menuItem4 = new System.Windows.Forms.MenuItem();
   this.menuItem5 = new System.Windows.Forms.MenuItem();
   this.menuItem6 = new System.Windows.Forms.MenuItem();
   this.menuItem7 = new System.Windows.Forms.MenuItem();
   this.menuItem8 = new System.Windows.Forms.MenuItem();
   this.openFileDialog = new System.Windows.Forms.OpenFileDialog();
   this.saveFileDialog = new System.Windows.Forms.SaveFileDialog();
   this.SuspendLayout();
   //
   // textEditorControl
   //
   this.textEditorControl.AutoScroll = true;
   this.textEditorControl.Dock = System.Windows.Forms.DockStyle.Fill;
   this.textEditorControl.Encoding = ((System.Text.Encoding)(resources.GetObject("textEditorControl.Encoding")));
   this.textEditorControl.Location = new System.Drawing.Point(0, 0);
   this.textEditorControl.Name = "textEditorControl";
   this.textEditorControl.ShowEOLMarkers = true;
   this.textEditorControl.ShowInvalidLines = false;
   this.textEditorControl.ShowSpaces = true;
   this.textEditorControl.ShowTabs = true;
   this.textEditorControl.ShowVRuler = true;
   this.textEditorControl.Size = new System.Drawing.Size(472, 454);
   this.textEditorControl.TabIndex = 0;
   //
   // mainMenu
   //
   this.mainMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
                      this.menuItem1,
                      this.menuItem2});
   //
   // menuItem1
   //
   this.menuItem1.Index = 0;
   this.menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
                       this.OpenMenu,
                       this.Save});
   this.menuItem1.Text = "File(&F)";
   //
   // OpenMenu
   //
   this.OpenMenu.Index = 0;
   this.OpenMenu.Text = "&Open";
   this.OpenMenu.Click += new System.EventHandler(this.OpenMenu_Click);
   //
   // Save
   //
   this.Save.Index = 1;
   this.Save.Text = "&Save";
   this.Save.Click += new System.EventHandler(this.Save_Click);
   //
   // menuItem2
   //
   this.menuItem2.Index = 1;
   this.menuItem2.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
                       this.menuItem3,
                       this.menuItem4,
                       this.menuItem5,
                       this.menuItem6,
                       this.menuItem7,
                       this.menuItem8});
   this.menuItem2.Text = "CodeType(&T)";
   //
   // menuItem3
   //
   this.menuItem3.Index = 0;
   this.menuItem3.Text = "&C#";
   this.menuItem3.Click += new System.EventHandler(this.menuItem3_Click);
   //
   // menuItem4
   //
   this.menuItem4.Index = 1;
   this.menuItem4.Text = "C++.&NET";
   this.menuItem4.Click += new System.EventHandler(this.menuItem4_Click);
   //
   // menuItem5
   //
   this.menuItem5.Index = 2;
   this.menuItem5.Text = "&Xml";
   this.menuItem5.Click += new System.EventHandler(this.menuItem5_Click);
   //
   // menuItem6
   //
   this.menuItem6.Index = 3;
   this.menuItem6.Text = "&Html";
   this.menuItem6.Click += new System.EventHandler(this.menuItem6_Click);
   //
   // menuItem7
   //
   this.menuItem7.Index = 4;
   this.menuItem7.Text = "&Java";
   this.menuItem7.Click += new System.EventHandler(this.menuItem7_Click);
   //
   // menuItem8
   //
   this.menuItem8.Index = 5;
   this.menuItem8.Text = "&VB.NET";
   this.menuItem8.Click += new System.EventHandler(this.menuItem8_Click);
   //
   // TestCSharpTextBox
   //
   this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
   this.ClientSize = new System.Drawing.Size(472, 454);
   this.Controls.Add(this.textEditorControl);
   this.Menu = this.mainMenu;
   this.Name = "TestCSharpTextBox";
   this.Text = "TestCSharpTextBox";
   this.ResumeLayout(false);

  }
  #endregion

  #region 事件处理

  private void OpenMenu_Click(object sender, System.EventArgs e)
  {
   OpenFileDialog oDia = new OpenFileDialog();
   DialogResult result = oDia.ShowDialog();
   if (result == DialogResult.OK)
   {
    textEditorControl.LoadFile(oDia.FileName);
   }
  }

  private void menuItem3_Click(object sender, System.EventArgs e)
  {
   textEditorControl.Document.HighlightingStrategy =
    HighlightingStrategyFactory.CreateHighlightingStrategy("C#");
  }

  private void menuItem4_Click(object sender, System.EventArgs e)
  {
   textEditorControl.Document.HighlightingStrategy =
    HighlightingStrategyFactory.CreateHighlightingStrategy("C++.NET");
  }

  private void menuItem5_Click(object sender, System.EventArgs e)
  {
   textEditorControl.Document.HighlightingStrategy =
    HighlightingStrategyFactory.CreateHighlightingStrategy("XML");
  }

  private void menuItem6_Click(object sender, System.EventArgs e)
  {
   textEditorControl.Document.HighlightingStrategy =
    HighlightingStrategyFactory.CreateHighlightingStrategy("HTML");
  }

  private void menuItem7_Click(object sender, System.EventArgs e)
  {
   textEditorControl.Document.HighlightingStrategy =
    HighlightingStrategyFactory.CreateHighlightingStrategy("Java");
  }

  private void menuItem8_Click(object sender, System.EventArgs e)
  {
   textEditorControl.Document.HighlightingStrategy =
    HighlightingStrategyFactory.CreateHighlightingStrategy("VBNET");
  }

  private void Save_Click(object sender, System.EventArgs e)
  {
   SaveFileDialog sDia = new SaveFileDialog();
   DialogResult result = sDia.ShowDialog();
   if (result == DialogResult.OK)
   {
    textEditorControl.SaveFile(sDia.FileName);
   }
  }
  
  #endregion

  #endregion

  #region 入口点

  [STAThread]
  static void Main()
  {
   Application.Run(new TestCSharpTextBox());
  }

  #endregion
  
  #region 公有方法
  
  #endregion
 }
}




相关文章

相关软件